home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d8 / vmix225.arc / MANUAL.DOC < prev    next >
Text File  |  1990-05-21  |  146KB  |  6,915 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.                  -----------------------
  11.                                         |
  12.                                         |
  13.                                         |
  14.                      V M i X  2 8 6     |     
  15.                                         |
  16.                           for           |
  17.                                         |
  18.                    MSDOS Environments   |
  19.                                         |
  20.                                         |
  21.                                         |
  22.                    Multiuser Operating  |
  23.                        Supervisor       |
  24.                                         |
  25.                         for the         |
  26.                                         |
  27.                    I B M  PC / XT / AT  |
  28.                                         |
  29.                                         |
  30.                       Version 1.4X      |
  31.                                         |
  32.                                         |
  33.                  -----------------------
  34.  
  35.  
  36.  
  37.                        By
  38.      
  39.                 J. Anthony Borras
  40.           Commercial Software Associates
  41.               Post Office Box  185
  42.         Corona del Mar, California 92625
  43.                 (714)  721-9953
  44.  
  45.    IBM PC/XT/AT are trademarks of the IBM Corp.
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.           This manual was written by:
  84.  
  85.  
  86.          Commercial Software Associates
  87.               Post Office Box  185
  88.         Corona del Mar, California 92625
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.                   COPYRIGHT NOTICE
  101.  
  102.       Copyright (c) 1988 by: J. Anthony Borras
  103.                 All rights reserved
  104.  
  105.       No  part  of  this  program  or  related
  106.       documentation may be copied, reproduced,
  107.       stored   in   a   retrieval  system,  or
  108.       transmitted in any  form or by any means
  109.       electronic,   mechanical,   photocopied,
  110.       recorded, or thereby translated into any
  111.       language,   without  the  prior  written
  112.       permission of  the publisher.    You may
  113.       only  make  a copy  of  the program  for
  114.       backup purposes.
  115.  
  116.  
  117.              LIMITED SHAREWARE LICENSE
  118.  
  119.       - VMiX 286  may be  copied for others to
  120.       tryout, subject to the following copying 
  121.       restrictions   specified  by  this  time 
  122.       limited license:
  123.  
  124.           All  copies   distributed to  others 
  125.         must  include a copy of the  Copyright 
  126.         Notice, the Limited Shareware License, 
  127.         Disclaimer   of  All  Warranties   and 
  128.         Liabilities,  and the Software License 
  129.         Agreement.
  130.  
  131.         A registration fee of $59 is solicited
  132.         from personal users (up to 3 CPU's) as 
  133.         a condition  of continued  use of  the 
  134.         program beyond a trial usage period of 
  135.         30 days.
  136.  
  137.       - The  party  agrees  that  unauthorized 
  138.       usage  under this  agreement will  cause 
  139.       great damage to the licensor, Commercial 
  140.       Software Associates.
  141.  
  142.  
  143.                        page 2
  144.  
  145.  
  146.  
  147.  
  148.                    Basic Prices
  149.  
  150.  
  151.       REGISTRATION fee .................   $59.
  152.  
  153.       SOURCE license ...................  $499.
  154.       (+$440, if upgrade from registration fee)
  155.  
  156.       UPGRADE Version 1.XX  ............   $20.
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.                        page 3
  192.  
  193.  
  194.  
  195.  
  196.                   Disclaimer of
  197.           All Warranties and Liabilities
  198.  
  199.       Commercial Software (ComSoft) Associates 
  200.       makes no warranties, either expressed or 
  201.       implied,  with respect to this manual or 
  202.       to the software described there in,  its
  203.       quality,  performance,  merchantability, 
  204.       or  fitness for any particular  purpose. 
  205.       VMiX 286 is  sold  or  licensed `as is', 
  206.       and   is   for  use  by   the   original 
  207.       purchaser  only,  except as expanded  by 
  208.       the Limited Shareware License  described 
  209.       above.   The  entire  risk,  as  to  the 
  210.       quality  and  performance,  of the  VMiX 
  211.       experimental  system is with the  buyer.  
  212.       In  the event of loss or damage   caused 
  213.       or alleged to be caused by the VMiX  286 
  214.       program, the buyer (and not ComSoft, its 
  215.       distributors,  or its retailers) assumes 
  216.       the   entire   cost  of  all   necessary 
  217.       servicing,  repair,  or correction   and  
  218.       any  incidental or consequential damages 
  219.       resulting   from  any  defect   in   the 
  220.       software or its use, even if ComSoft has 
  221.       been advised of the possibility of  such 
  222.       damages.
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.                        page 4
  240.  
  241.  
  242.  
  243.  
  244.              SOFTWARE LICENSE AGREEMENT
  245.  
  246.  
  247.           The  party, whose signature  appears 
  248.       below, agrees that they will utilize the 
  249.       software entitled `VMiX 286' exclusively 
  250.       for  their  private  use  in  their  own 
  251.       personal system,  not to exceed 3 CPU's.  
  252.       The  party agrees that all copies of the 
  253.       VMiX   286  software  package  are   the 
  254.       property    of    Commercial    Software 
  255.       Associates, Westwood California and that 
  256.       all  copies  will display  the  original 
  257.       copyright.
  258.  
  259.            The party agrees that the  location 
  260.       of  all  copies  will   be  reported  to 
  261.       Commercial Software upon written demand. 
  262.       The licensee agrees to fill out and mail 
  263.       this  registration   form  and   license 
  264.       within 30 days of the start of the  try-
  265.       out  period  specified  by  the  Limited 
  266.       Shareware License shown above.   Support 
  267.       will be provided to registered licensees 
  268.       only.
  269.  
  270.           The  party agrees that  unauthorized 
  271.       usage  under this  agreement will  cause 
  272.       great damage to the licensor, Commercial 
  273.       Software Associates.
  274.  
  275.           Unless   this  agreement is returned 
  276.       to Commercial Software and  registration 
  277.       fee  is  paid  upon  expiration  of  the 
  278.       Limited  Shareware License,  it will not 
  279.       be  possible to inform the purchaser  of 
  280.       any updates, additions, or   corrections  
  281.       to this software package or accompanying 
  282.       manual.
  283.  
  284.  
  285.  
  286.  
  287.                        page 5
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.       RETURN TO:
  297.  
  298.       Commercial Software Associates
  299.       Post Office Box  185
  300.       Corona del Mar, Ca.  92625
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.       SERIAL NUMBER:      ____________________
  309.  
  310.       NAME    ________________________________
  311.                          name
  312.  
  313.       COMPANY/TITLE __________________________
  314.                      company        title
  315.  
  316.       ADDRESS       __________________________
  317.                             street
  318.  
  319.                     __________________________
  320.                      city      state  zip
  321.  
  322.       TELEPHONE        (    )       -       
  323.                             phone
  324.  
  325.       Signature:    __________________________
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.                        page 6
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.                        page 7
  384.  
  385.  
  386.  
  387.  
  388.                FEATURES of VMiX 286
  389.  
  390.  
  391.           VERSION 1.4X  First Level  Release
  392.        Distributed as shareware in continued
  393.        development state.
  394.  
  395.  
  396.       - VMiX is not presently a full operating 
  397.       system.   It  provides the services of a 
  398.       multiuser  operating system  supervisor.  
  399.       The  VMiX kernel  ties  tightly  between 
  400.       the  host operating system I/O  services 
  401.       and the user applications.  The eventual 
  402.       goal of  the VMiX kernel is to arbitrate
  403.       use  of system resources  by  individual 
  404.       tasks  with  either or both UNIX I/O  or 
  405.       MSDOS I/O, in  an environment  providing
  406.       up to 16 megabytes of physical memory.
  407.  
  408.       - VMiX  incorporates   enhanced   multi-
  409.       tasking support.  The console screen can
  410.       be automatically partitioned into  up to
  411.       four  windows,  for  a total of  4 tasks
  412.       executing from the console.   The active
  413.       task   controls  and   responds  to  the
  414.       console keyboard. The active task can be
  415.       switched,  at any time,  by pressing the
  416.       hot key, Shift-Tab.
  417.  
  418.       - VMiX provides concurrent  multiprocess 
  419.       capabilities   to  the  host   operating 
  420.       system, which will still service most of 
  421.       the  low level interface to the computer 
  422.       hardware.    NOTE:   MSDOS  disk  driver 
  423.       reentrancy problems are not addressed by 
  424.       this   release.    If  two   tasks   are 
  425.       requesting  disk I/O,  one is placed  in
  426.       IOWAIT   by   VMiX,    while  the  other
  427.       completes a disk sector access.
  428.  
  429.  
  430.  
  431.                        page 8
  432.  
  433.  
  434.  
  435.  
  436.  
  437.       - VMiX release 1.4X  does not operate in 
  438.       286 protected mode at all times.  Hence, 
  439.       it  can  be used  in  8088  PCs.  System 
  440.       services  are provided in sysgate.asm to 
  441.       execute your own functions in  protected 
  442.       mode.   The debugger "assign gdt" method 
  443.       allows  entries to the VMiX  gdt.   This 
  444.       can also be done with the memory manager 
  445.       system service.
  446.  
  447.       - REMOTE permits a user to call a remote
  448.       PC running VMiX,  and teleoperate, as if 
  449.       he were at the console of the remote PC.  
  450.       Useful  for remote customer  support  of 
  451.       application programs,  offsite login and 
  452.       operations.  VMiX terminal drivers offer
  453.       CGA  text  mode  and  IBM  function  key
  454.       emulation  at a  COMM  port.   Only  the
  455.       remotely accessed PC needs to be execut-
  456.       ing VMiX.
  457.  
  458.       - With VMiX you can  run  programs  like 
  459.       WINDOWS, LOTUS 123, XTALK, BASIC, DBASE,
  460.       or WORD at the console and BASIC, DEBUG,
  461.       TURBO PASCAL, WORDSTAR 3.2 or 4/0, DBASE
  462.       II/III,  or PROCOMM  at a COMM terminal.
  463.       Multiple BASIC  or  GWBASIC  interpreter
  464.       sessions are supported.
  465.  
  466.       - Supports a maximum of five users (only
  467.       because of COMM limitations),  each with
  468.       multiple processes up to a maximum of 10.
  469.  
  470.       - SPAWN or  '&' permits a script of VMiX
  471.       shell  commands  to be  submitted  to  a
  472.       background  process  executing  the VMiX
  473.       shell.  This allows for background  jobs
  474.       like   compiling   or   printing   by  a
  475.       concurrent child process.
  476.  
  477.  
  478.  
  479.                        page 9
  480.  
  481.  
  482.  
  483.  
  484.  
  485.       - DOSJOB  permits  MSDOS keyboard inter-
  486.       active  applications  to  be partitioned
  487.       and managed  as concurrent video display
  488.       window tasks.
  489.  
  490.       - SWAP  will move tasks  from/to conven-
  491.       tional memory and store them in extended
  492.       memory for later resumption.
  493.  
  494.       - Automatic or User specified windows in
  495.       both  alphanumeric  and  hires  graphics
  496.       modes, from either the console or VT-100
  497.       COMM terminal.
  498.  
  499.       - Loadable character fonts,  33 line CGA 
  500.       display.   Version 1.4X provides support
  501.       for EGA video modes  and  up to 58  line
  502.       display, with VMiX font type 1.
  503.  
  504.       - Console  operator   status  line   and 
  505.       passive fault-tolerance.
  506.  
  507.       - Built-in debugger.
  508.  
  509.       - Memory manager and memory mapper.
  510.  
  511.       - Assembly and C language interface.
  512.  
  513.       - Interrupt 15h System Services.
  514.  
  515.       - VMiX 286 requires MSDOS 2.10 or above, 
  516.       and 320K of memory to execute.   It will 
  517.       adjust to and recognize, either an  8088 
  518.       IBM PC, an 80286 IBM AT, or 100% clone.
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.                       page 10
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.                        page 11
  576.  
  577.  
  578.  
  579.  
  580.  
  581.                      PREFACE
  582.  
  583.  
  584.       This manual is divided into Three Parts.
  585.       They are:
  586.  
  587.  
  588.       PART ONE HOW TO GET STARTED
  589.  
  590.       How to Get Started:  This  part  of  the 
  591.       manual  covers the preparation  required 
  592.       to use VMiX 286 effectively. It provides 
  593.       information   on  how  to  install   the 
  594.       shipped system. 
  595.  
  596.       PART TWO USING VMiX 286
  597.  
  598.       General Use:  This  part  of  the manual  
  599.       contains  a detailed  description of the 
  600.       various  features  of  VMiX   286.    It 
  601.       provides a step-by-step guide to the use 
  602.       of   the  operating  system's  commands.  
  603.       Also   included  are  notes   describing 
  604.       useful  features and those areas   where  
  605.       extra  caution  is recommended.
  606.  
  607.       Advanced Use:  This part  of  the manual 
  608.       contains   useful information  regarding 
  609.       the internal functions of the  operating 
  610.       system.   It  describes  procedures  for 
  611.       writing  programs that utilize the  VMiX 
  612.       system  services  and explores in detail 
  613.       the external interface.
  614.  
  615.       PART THREE APPENDICES
  616.  
  617.       Appendices:   This  part  of the  manual 
  618.       contains various  appendices,  including 
  619.       release notes,  a Technical Section, and 
  620.       a description of VMiX status messages.
  621.  
  622.  
  623.                        page 12
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.                        page 13
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678.       ---------------------------------------
  679.                                              |
  680.                                              |
  681.                                              |
  682.                                              |
  683.                                              |
  684.         CONTENTS                             |
  685.                                              |
  686.                                              |
  687.                                              |
  688.                                              |
  689.                                              |
  690.       ---------------------------------------
  691.  
  692.        
  693.  
  694.  
  695.       INTRODUCTION                 Page
  696.  
  697.           Copyright Notice                        2
  698.           Software License Agreement              5
  699.           Features of VMiX 286                    8
  700.           Preface                                12
  701.           Table of Contents                      14
  702.           List of Figures                        18
  703.  
  704.  
  705.  
  706.       PART ONE: -How to Get Started-
  707.  
  708.                                                Page
  709.  
  710.           Title Page                              1
  711.           Introduction                            3
  712.           How to Get Started                      7
  713.           Commands Overview                      15
  714.                Shell Commands                    15
  715.                Command Summary                   18
  716.  
  717.  
  718.  
  719.                       Contents  14
  720.  
  721.  
  722.  
  723.  
  724.       PART TWO: -Using VMiX 286-
  725.  
  726.                                                Page
  727.  
  728.           Title Page                           1- 1
  729.           VMiX Start-Up                        1- 3
  730.           Interface to MSDOS                   1- 4
  731.           VMiX Configuration                   1- 7
  732.           Using the Command Line               1- 8
  733.           System Console Display               1-12
  734.                Shell Commands                  1-14
  735.           Login Terminals                      1-16
  736.                Terminal Types                  1-17
  737.                IBM Function Keys               1-18
  738.           Communications                       1-20
  739.           Extended Memory                      1-21
  740.  
  741.  
  742.           The Root Shell                       2- 1
  743.                Command  1 - debug              2- 3
  744.                Command  2 - rshell             2- 4
  745.                Command  3 - remote             2- 5
  746.                Command  4 - swap               2- 8
  747.                Command  5 - chprio             2- 9
  748.                Command  6 - exec               2-11
  749.                Command  7 - dosjob             2-15
  750.                Command  8 - spawn              2-17
  751.                Command  9 - kill               2-20
  752.                Command 10 - quit               2-22
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.                       Contents  15
  768.  
  769.  
  770.  
  771.  
  772.       PART TWO: -(Continued)-
  773.  
  774.                                                Page
  775.  
  776.  
  777.           The Debugger Shell                   3- 1
  778.                Command  1 - read               3- 3
  779.                Command  2 - write              3- 4
  780.                Command  3 - assign             3- 5
  781.                Command  4 - deassign           3- 9
  782.                Command  5 - init               3-11
  783.                Command  6 - examine            3-12
  784.                Command  7 - set                3-13
  785.                Command  8 - quit               3-24
  786.                Utility  9 - monitor            3-25
  787.  
  788.           Advanced Use                         4- 1
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809.  
  810.  
  811.  
  812.  
  813.  
  814.  
  815.                       Contents  16
  816.  
  817.  
  818.  
  819.  
  820.       PART THREE: -Appendices-
  821.  
  822.                                                Page
  823.  
  824.       Title Page                               A- 1
  825.       Appendix A   Release Notes               A- 3
  826.                    Problem Reports             A- 7
  827.       Appendix B   VMix System Services        B- 1
  828.       Appendix C   Technical Information       C- 1
  829.       Appendix D   Status Monitor              D- 1
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.                       Contents  17
  864.  
  865.  
  866.  
  867.  
  868.  
  869.       ---------------------------------------
  870.                                              |
  871.                                              |
  872.                                              |
  873.                                              |
  874.                                              |
  875.         FIGURES:                             |
  876.                                              |
  877.                                              |
  878.                                              |
  879.                                              |
  880.                                              |
  881.       ---------------------------------------
  882.  
  883.  
  884.        
  885.  
  886.  
  887.       PART ONE:
  888.  
  889.  
  890.       FIGURE     DESCRIPTION                   Page
  891.  
  892.       Fig. 1   VMiX Start-up Screen              15
  893.            2   VMiX Debugger Screen              17
  894.            3   VMiX Command Summary              20
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.                       Contents  18
  912.  
  913.  
  914.  
  915.  
  916.       PART TWO:
  917.  
  918.  
  919.       FIGURE     DESCRIPTION                   Page
  920.  
  921.       Fig. 4   COMMON TERMINALS                1- 9
  922.            5   Terminal Function Key Emulation 1-19
  923.            6   Object type name definitions    3- 6
  924.            7   SRCSINK object id's             3- 6
  925.            8   Color Keys                      3-19
  926.            9   Color Codes                     3-20
  927.           10   Root Window Sizing              3-21
  928.  
  929.  
  930.  
  931.       PART THREE:
  932.  
  933.  
  934.       FIGURE     DESCRIPTION                   Page
  935.  
  936.       Fig. A-1  VMiX Status Board              A- 5
  937.            A-2  VMiX 286 Conventions           A- 6
  938.            C-1  VMiX 286 O/S Hierarchy         C- 3
  939.            C-4  VMiX 286 Synchro Primitives    C- 4
  940.            C-5  VMiX 286 Scheduler             C- 5
  941.            C-6  VMiX 286 Structures            C- 6
  942.            C-7  VMiX 286 Queue Structures      C- 7
  943.            C-8  VMiX 286 Object Model          C- 8
  944.            C-9  VMiX 286 I/O Objects           C- 9
  945.            C-10 vm_boot Structure Chart        C-10
  946.            C-11 vm_shell Structure Chart       C-11
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.                       Contents  19
  960.  
  961.  
  962.  
  963.  
  964.       TABLE      DESCRIPTION                   Page
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.       Table C-1 VMiX Global Data               C-12
  1008.  
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.                       Contents  20
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066.                      PART ONE
  1067.  
  1068.  
  1069.                      VMiX 286
  1070.  
  1071.  
  1072.  
  1073.  
  1074.  
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.  
  1081.                 HOW TO GET STARTED
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087.  
  1088.  
  1089.  
  1090.  
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.       Part I, Introduction              page 1
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.  
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140.  
  1141.  
  1142.  
  1143.  
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149.  
  1150.  
  1151.       Part I, Introduction              page 2
  1152.  
  1153.       C O M S O F T                    VMiX 286
  1154.  
  1155.  
  1156.  
  1157.       INTRODUCTION
  1158.  
  1159.            VMiX 286  provides  a  multitasking
  1160.       and  multiuser  environment  for the new 
  1161.       evolving   personal  workstations.  VMiX
  1162.       retains  some of the  freedom,  control, 
  1163.       and  general access  to the system  that
  1164.       existed  during   the  earlier  days  of
  1165.       personal computing.
  1166.  
  1167.            VMiX enhances  your computing envi-
  1168.       ronment in several ways.   First you can
  1169.       view  information  from several programs
  1170.       simultaneously  using   VMiX's   console
  1171.       windowing  capabilities.  You  can  also 
  1172.       multitask, not just execute in the back-
  1173.       ground, but in each of the windows.  You
  1174.       can also give  the full screen to one or
  1175.       more programs.   Since  VMiX is a multi-
  1176.       user  environment,  not just  a windowed
  1177.       multitasking shell, you can also support
  1178.       several  workstations  or modems at your
  1179.       computer's serial ports.
  1180.  
  1181.            VMiX  also  provides  the choice to 
  1182.       load  tasks  that can be  swapped out to
  1183.       extended  286  memory,  interrupted  and
  1184.       made active again, at your command. This
  1185.       virtual memory  capability, to load more
  1186.       programs   than  you  have  conventional
  1187.       memory to execute-in, is enhanced by the
  1188.       additional capability to execute swapped
  1189.       programs, while they are swapped.
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  
  1195.  
  1196.  
  1197.  
  1198.  
  1199.       Part I, Introduction              page 3
  1200.  
  1201.       C O M S O F T                    VMiX 286
  1202.  
  1203.  
  1204.  
  1205.             It  is  possible that  as  personal 
  1206.       computer hardware reaches new levels  of 
  1207.       speed   and   complexity,   control   of 
  1208.       operating  kernels  will revert  to  the 
  1209.       manufacturer,  like  has  been the  case 
  1210.       with   mini-computers   and  mainframes.
  1211.       Systems like VMiX provide an alternative
  1212.       to users of the new personal computers.
  1213.  
  1214.           The  ability to  develop  creative, 
  1215.       highly custom applications which manipu-
  1216.       late  the total system  will probably be
  1217.       lost if new independent environments are
  1218.       not  implemented  for  the  OS/2  world.  
  1219.       Since  with MSDOS, this was unnecessary, 
  1220.       we have complacently left the area of PC 
  1221.       control program development  to computer 
  1222.       manufacturers   or  to  large  dedicated 
  1223.       system  houses;  there is a  substantial 
  1224.       amount of catch-up involved in  creating 
  1225.       a new independent platform.
  1226.  
  1227.            Because  of the scope  of  the VMiX
  1228.       project,   some  areas  have  been  kept
  1229.       initially  simple.    This  is  a  mixed
  1230.       blessing  that limits  the capability of
  1231.       VMiX  to operate  satisfactorily  with a
  1232.       larger volume of existing software.
  1233.  
  1234.            VMiX, allows applications  to start 
  1235.       with  full  kernel  privileges,  as  all  
  1236.       MSDOS  environment applications have, in 
  1237.       the  past.    After  initialization, the 
  1238.       application   can  move  itself  to  the 
  1239.       desired   protection  level.   In   some 
  1240.       commercial   environments,    with   the 
  1241.       concept of trusted hosts, this might  be 
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.       Part I, Introduction              page 4
  1248.  
  1249.       C O M S O F T                    VMiX 286
  1250.  
  1251.  
  1252.  
  1253.       highly risky.  However, not all personal 
  1254.       computer  applications need to be  crash 
  1255.       proof,  if  you  loose  the  ability  to 
  1256.       develop custom applications.
  1257.  
  1258.            Most of the  effort,  so  far,  has 
  1259.       been concentrated  in the development of
  1260.       the  process   manager  and   preemptive
  1261.       scheduler. Process management is, there-
  1262.       fore, substantially  robust, except that
  1263.       a hi-resolution clock has  not yet  been
  1264.       implemented.   VMiX  is still limited by
  1265.       the  resolution  of the  55  millisecond
  1266.       time-of-day clock. This produces approx-
  1267.       imately 18 task switches  per second and
  1268.       can  result  in yerky  scrolling  of the
  1269.       video display.
  1270.  
  1271.            File  management  within  the  VMiX 
  1272.       object   manager  is  not   implemented.  
  1273.       Hence,  there presently are  limitations 
  1274.       with I/O redirection.
  1275.  
  1276.            The  VMiX memory object manager  is 
  1277.       about 75% complete.  So, conflicts still 
  1278.       exists  when  VMiX relies on  the  MSDOS 
  1279.       memory manager to do things right from a 
  1280.       multiprogramming standpoint.   VMiX does 
  1281.       provide  access  to  286  protected mode
  1282.       memory.  This memory  is called extended
  1283.       memory.  Version 1.4X  uses this area to
  1284.       swap programs that do not fit in conven-
  1285.       tional memory.    The  VMiX  Application
  1286.       Program Interface  (API) allows programs
  1287.       to be executed in protected mode.
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.       Part I, Introduction              page 5
  1296.  
  1297.       C O M S O F T                    VMiX 286
  1298.  
  1299.  
  1300.  
  1301.            The tty driver,  which handles EGA/ 
  1302.       CGA/MDA  video modes at the console  and 
  1303.       character  I/O to the serial devices  is 
  1304.       relatively robust.   Direct video access 
  1305.       can not  be redirected  until  full  386 
  1306.       operations  are  attained.    There  are 
  1307.       programs that just can not run on a dumb 
  1308.       terminal   (if only,  just  because  the 
  1309.       keyboard  layout is too  limiting).   An 
  1310.       interprocess  communications manager  to 
  1311.       service  requests  from  other  serially 
  1312.       connected  PCs  running VMiX is not  yet 
  1313.       included in VMiX, but is a high priority 
  1314.       objective.
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.  
  1329.  
  1330.  
  1331.  
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341.  
  1342.  
  1343.       Part I, Introduction              page 6
  1344.  
  1345.       C O M S O F T                    VMiX 286
  1346.  
  1347.  
  1348.  
  1349.       HOW TO GET STARTED
  1350.  
  1351.  
  1352.       GENERAL:
  1353.  
  1354.           VMiX  286 is designed for use on the 
  1355.       IBM Personal Computer,  IBM AT, or other 
  1356.       compatible  computers running under  the 
  1357.       MSDOS 3.10+ operating system. Two floppy 
  1358.       disk   drives,  or  a  hard   disk   are 
  1359.       recommended.   Memory  requirements  are 
  1360.       320K  of  RAM,   but  a  full  640K   is 
  1361.       desirable   for  multiuser   operations.
  1362.       At  least  1 megabyte  of memory  and an
  1363.       80286 processor is required for extended
  1364.       memory task swapping.  Swapped tasks are
  1365.       temporarily suspended until swapped back
  1366.       to conventional memory  (the first mega-
  1367.       byte of Intel address space).
  1368.  
  1369.           The color graphics  adapter, CGA, is 
  1370.       recommended  for  a  640 x 200   console 
  1371.       display.   Version 1.4X is  a  prototype 
  1372.       system  intended  mostly for  Intel 8086
  1373.       Real Mode, however 386 Protected Mode is 
  1374.       planned for implementation in Version 2.  
  1375.       The  present kernel resource  supervisor  
  1376.       incorporates  data structures compatible 
  1377.       with the Intel 80286 protected mode  and 
  1378.       provides for the execution of conforming 
  1379.       functions in protected mode.
  1380.  
  1381.           To   successfully  use  the   varied 
  1382.       features  of VMiX 286 it is necessary to 
  1383.       carefully read  parts I  and  II of this 
  1384.       manual COMPLETELY before use.
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.       Part I, How to Get Started        page 7
  1392.  
  1393.       C O M S O F T                    VMiX 286
  1394.  
  1395.  
  1396.  
  1397.           BEFORE  using VMiX 286, copy all the 
  1398.       files described below, from the Shipping 
  1399.       Diskette to a formatted System Disk that 
  1400.       includes your MSDOS operating system.
  1401.  
  1402.           NEVER  use the Shipping Diskette  to 
  1403.       actually  run VMiX 286.   Use the copies 
  1404.       that you have made from it  and keep the 
  1405.       Master Disk in a secure, cool place.  If 
  1406.       you  have  a problem with  your  program 
  1407.       that  is  related to  the   Work   Disk,  
  1408.       insert  another copied  disk  to   check  
  1409.       out the problem.   Do not use the Master 
  1410.       Disk,  there  may be a failure  in   the  
  1411.       computer  system  that could destroy the 
  1412.       information  contained on it.   For this 
  1413.       reason,  it is wise to maintain two work 
  1414.       copies of the Master Disk at all times.
  1415.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.       Part I, How to Get Started        page 8
  1440.  
  1441.       C O M S O F T                    VMiX 286
  1442.  
  1443.  
  1444.           The   VMiX 286  System   consists of  
  1445.       the twenty one files described below.
  1446.  
  1447.  
  1448.                 MASTER DISK CONTENTS
  1449.  
  1450.       VM_BOOT.EXE  -                  The VMiX  
  1451.         start-up  program.    To  start,  type 
  1452.         VM_BOOT from  MSDOS's  A>  prompt  and 
  1453.         press <RETURN>.
  1454.  
  1455.       PS.EXE  -                        Utility
  1456.         executed by user to view process staus.
  1457.  
  1458.       DSTAT.EXE  -                     Utility  
  1459.         executed  by  user to  view device and 
  1460.         channel status.
  1461.  
  1462.       DPATH.EXE  -                     Utility
  1463.         executed by user, to set the directory
  1464.         search PATH for data files.  
  1465.  
  1466.       MONITOR.EXE  -                   Utility
  1467.         executed  by user  to  monitor  process
  1468.         information and system status. 
  1469.  
  1470.       SYSGATE.OBJ  -                 Link file 
  1471.         for VMiX (API) Application Programming
  1472.         Interface.
  1473.  
  1474.  
  1475.       SOURCE FILES:      DOCUMENTATION FILES:
  1476.  
  1477.       SYSGATE.ASM               READ.ME
  1478.       MONITOR.C                 DPATH.DOC
  1479.       DSTAT.C     PS.C          MANUAL.DOC
  1480.       C_BIOS.H    $_PROC.H
  1481.       $_KERNEL.H  IO_CHAN.H
  1482.       $_CONFIG.H  IO_IRP.H
  1483.       $_MEM.H     IO_OBJ.H
  1484.  
  1485.  
  1486.  
  1487.       Part I, How to Get Started        page 9
  1488.  
  1489.       C O M S O F T                    VMiX 286
  1490.  
  1491.  
  1492.  
  1493.                I N S T R U C T I O N S
  1494.  
  1495.  
  1496.       1)   Upon  receipt  of   your   SHIPPING 
  1497.            Diskette, copy the five files:
  1498.  
  1499.            VM_BOOT.EXE, PS.EXE, DSTAT.EXE,
  1500.            MONITOR.EXE and DPATH.EXE 
  1501.            onto your own System Diskette.
  1502.  
  1503.       2)   Using your  editor, create  a  file 
  1504.            named   CONFIG.SYS.    Include  the 
  1505.            following two lines:
  1506.  
  1507.            BUFFERS = 15              (or more)
  1508.            FILES = 20
  1509.  
  1510.            and, save the file to  your  system 
  1511.            boot disk.
  1512.  
  1513.       3)   To  execute  the VMiX  286  program 
  1514.            requires   MSDOS  Version  2.10  or 
  1515.            above, and 320K of memory.  A color 
  1516.            graphics  card,  CGA is recommended 
  1517.            for  the console  display.
  1518.  
  1519.            Release  1.4X  does not operate  in 
  1520.            286 protected mode at all times, so 
  1521.            it  will  execute properly  in  PCs 
  1522.            with 8088 processors.   Start  VMiX 
  1523.            by typing:
  1524.  
  1525.            A> VM_BOOT<RETURN>
  1526.  
  1527.  
  1528.            If  you have a Monochrome  Adapter, 
  1529.            VMiX will sense it.
  1530.  
  1531.  
  1532.  
  1533.  
  1534.  
  1535.       Part I, How to Get Started        page 10
  1536.  
  1537.       C O M S O F T                    VMiX 286
  1538.  
  1539.  
  1540.  
  1541.       4)   The  RS232 cabling for COM1  and/or 
  1542.            COM2    should    be    constructed 
  1543.            depending  on whether the  host  PC 
  1544.            will   be   connected  to  a   dumb 
  1545.            terminal or to another PC acting as 
  1546.            a terminal.
  1547.  
  1548.  
  1549.              PIN                         PIN
  1550.  
  1551.       H      1                           1
  1552.       O
  1553.       S      2 -- - _           _ _ - -- 2
  1554.       T               -_ __ - - 
  1555.              3 __ _ -         - - - _ __ 3    T
  1556.       S                                       E
  1557.       e      4                           4    R
  1558.       r                                       M
  1559.       i    --5                           5    I
  1560.       a  -|                                   N
  1561.       l |  --6                           6    A
  1562.         |                                     L
  1563.       P |    7 ------------------------- 7
  1564.       o |
  1565.       r |  --8                           8
  1566.       t  -|
  1567.            --20                          20
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.           See  Part II,   Using VMiX 286,  for 
  1577.       detailed  instructions regarding the use 
  1578.       of VMiX 286 commands and options.
  1579.  
  1580.  
  1581.  
  1582.  
  1583.       Part I, How to Get Started        page 11
  1584.  
  1585.       C O M S O F T                    VMiX 286
  1586.  
  1587.  
  1588.  
  1589.       Some conventions used in the manual are:
  1590.  
  1591.  
  1592.         [  ]  =  Indicates that what is contained
  1593.                  between the braces is optional.
  1594.  
  1595.         xxxx  =  Used to represent alphanumeric
  1596.                  characters within a prompt.
  1597.  
  1598.               Example:  `ENTER FILENAME? xxxx'
  1599.  
  1600.         ????  =  Used to represent numeric
  1601.                  characters within a prompt.
  1602.  
  1603.               Example:  `set remote -c????'
  1604.  
  1605.         <   > =  Used to indicate a specific
  1606.                  keyboard key.
  1607.  
  1608.               Example:  `Press <RETURN>'
  1609.  
  1610.         [   ] =  Used to indicate a specific
  1611.                  function key or numeric keypad
  1612.                  key.
  1613.  
  1614.               Example:  `Press [F9]'
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625.  
  1626.  
  1627.  
  1628.  
  1629.  
  1630.  
  1631.       Part I, How to Get Started        page 12
  1632.  
  1633.       C O M S O F T                    VMiX 286
  1634.  
  1635.  
  1636.       The Only Keys
  1637.         You Need to Know:
  1638.  
  1639.         <RETURN>    VMiX is designed to interpret
  1640.                   the  <RETURN>  key  pressed  by 
  1641.                   itself,  alone in a line, as 
  1642.                   a request for help. The<RETURN>
  1643.                   key is labled  'Enter<--' on 
  1644.                   IBM keyboards.
  1645.  
  1646.         <Esc>     When  using  BASIC or BASICA
  1647.                   interpreters,  this key will 
  1648.                   clear  BASIC's  line  editor 
  1649.                   buffer.    This   key   will 
  1650.                   prevent Syntax Errors, which 
  1651.                   sometimes  occur during  new 
  1652.                   commands  typed,  when using 
  1653.                   BASIC from a terminal port.
  1654.  
  1655.                   When using the root commands
  1656.                   exec  or dosjob,   this  key
  1657.                   will abort a wait for a busy
  1658.                   DOS.
  1659.  
  1660.                   The debugger shell uses<Esc>
  1661.                   with some looping  commands,
  1662.                   to exit or end a loop.
  1663.  
  1664.   <Ctrl> <Break>  Pressing  these two keyboard
  1665.                   keys  simultaneously,   will 
  1666.                   abort an operation.
  1667.  
  1668.   <Ctrl> <C>      Pressing  these two keyboard 
  1669.                   keys  simultaneously,   will 
  1670.                   abort an operation.
  1671.  
  1672.  
  1673.  
  1674.  
  1675.  
  1676.  
  1677.  
  1678.  
  1679.       Part I, How to Get Started        page 13
  1680.  
  1681.       C O M S O F T                    VMiX 286
  1682.  
  1683.  
  1684.   <Ctrl> <F>      Pressing  these two keyboard 
  1685.                   keys  simultaneously,   will 
  1686.                   toggle   the   function  key 
  1687.                   emulation  from a  terminal.  
  1688.                   Keyboard  digits  <1>,  <2>, 
  1689.                   <3>...   <0>,  will  perform 
  1690.                   like  [F1],  [F2]...  [F10].
  1691.                   Holding down the <Shift> key
  1692.                   while  pressing  a  keyboard
  1693.                   character key  will cause an
  1694.                   Alt-key  sequence to be sent
  1695.                   to the  host.  The  terminal
  1696.                   will beep  when the function
  1697.                   keys are turned-on.
  1698.  
  1699.   <Shift> <Tab>   Pressing  these two keyboard 
  1700.                   keys  simultaneously,   will 
  1701.                   toggle  the currently active 
  1702.                   console task  that  owns the  
  1703.                   keyboard.   The keyboard  is   
  1704.                   re-assigned, in  round-robin
  1705.                   fashion, among  the channels
  1706.                   currently  assigned  to  the
  1707.                   console.  The  VMiX  console
  1708.                   status-line   displays   the
  1709.                   channel/task  that  owns the
  1710.                   keyboard.  <Shift><Tab> does
  1711.                   not affect multitasking.
  1712.  
  1713.          <&>      When the  character  '&'  is
  1714.                   placed  in  a  VMiX  command 
  1715.                   line,  a  background process 
  1716.                   will  be started to  execute 
  1717.                   everything in the  line,  up 
  1718.                   to the '&'  character.  This 
  1719.                   method  of  starting  a  job 
  1720.                   should be used only for non-
  1721.                   interactive processes.
  1722.  
  1723.  
  1724.  
  1725.  
  1726.  
  1727.       Part I, How to Get Started        page 14
  1728.  
  1729.       C O M S O F T                    VMiX 286
  1730.  
  1731.  
  1732.  
  1733.       COMMANDS OVERVIEW
  1734.  
  1735.  
  1736.                   SHELL COMMANDS
  1737.  
  1738.  
  1739.            When   the  VMiX  start-up   screen 
  1740.       displays  the  initial  command   prompt 
  1741.       'A>______', press the <RETURN> key to view 
  1742.       the  available commands (or tokens)  for 
  1743.       the root shell level. 
  1744.  
  1745.       The screen will display: (Fig. 1)
  1746.  
  1747.  
  1748.       
  1749.              ----------------------------------------------------------
  1750.             | VMiX.286 1.4X                 Copyright (C) ComSoft 1987 |
  1751.             |----------------------------------------------------------|
  1752.             | [PROCESSOR = 80286]                                      |
  1753.             | A>_<RETURN>___________                                   |
  1754.             |                                                          |
  1755.             |  ---------------------------------                       |
  1756.             | | VMiX 286 ROOT SHELL             |                      |
  1757.             | | debug   rshell   remote   swap  |                      |
  1758.             | | chprio  exec     dosjob   spawn |                      |
  1759.             | | kill    quit                    |                      |
  1760.             |  ---------------------------------                       |
  1761.             |                                                          |
  1762.             | A>____________________                                   |
  1763.             |                                                          | 
  1764.              ----------------------------------------------------------
  1765.  
  1766.                                      (Fig. 1)
  1767.       
  1768.  
  1769.  
  1770.           See Chapter 2, 'The Root Shell', for 
  1771.       a detailed description of each command.
  1772.  
  1773.  
  1774.  
  1775.       Part I, Commands Overview         page 15
  1776.  
  1777.       C O M S O F T                    VMiX 286
  1778.  
  1779.  
  1780.            The  term root refers to the  first 
  1781.       level  in a nesting of  layered  levels.  
  1782.       It   is  used  primarily  to  refer   to 
  1783.       processes   that   invoke  other   child 
  1784.       processes.   The  root  process  is  the 
  1785.       grandfather of all subsequent  children.  
  1786.       When  VMiX starts,  the root process  is 
  1787.       created  and displays at the console  of 
  1788.       the  processor  running  it.   The  root 
  1789.       process has the highest privilege on the
  1790.       system.   Only root can terminate (quit) 
  1791.       VMiX.
  1792.  
  1793.            The term shell refers to a grouping 
  1794.       of  commands and  capabilities  that  is 
  1795.       provided    by   a   command    language 
  1796.       interpreter.  MSDOS has a  single  shell
  1797.       called command.com.   This is  the shell
  1798.       that  interacts  with  MSDOS users  when
  1799.       they type  diskcopy or dir,  etc.   VMiX
  1800.       can have a large number of shells,  each 
  1801.       called  from  the  previous  or   father 
  1802.       shell.   Here  again,  the  top  command 
  1803.       shell  is  called the root  shell,  even 
  1804.       though  it  is  the top  shell  for  all 
  1805.       processes besides the root process.
  1806.  
  1807.            If you type debug and press <RETURN>,
  1808.       you  will  invoke  the  debugger  shell. 
  1809.       The   VMiX   prompt   will   change  to 
  1810.       '- _______', press the<RETURN> key to view
  1811.       the  available commands (or tokens) for 
  1812.       the debugger shell level (Fig. 2).
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.       Part I, Commands Overview         page 16
  1824.  
  1825.       C O M S O F T                    VMiX 286
  1826.  
  1827.  
  1828.      
  1829.       
  1830.              ----------------------------------------------------------
  1831.             | VMiX.286 1.4X                 Copyright (C) ComSoft 1987 |
  1832.             |----------------------------------------------------------|
  1833.             | A>_debug<RETURN>______                                   |
  1834.             | - _<RETURN>___________                                   |
  1835.             |                                                          |
  1836.             |  ----------------------------                            |
  1837.             | | VMiX KERNEL LEVEL DEBUGGER |                           |
  1838.             | | read     init     assign   |                           |
  1839.             | | write    examine  deassign |                           |
  1840.             | | set      quit              |                           |
  1841.             |  ----------------------------                            |
  1842.             |                                                          |
  1843.             | - ____________________                                   |
  1844.             |                                                          | 
  1845.              ----------------------------------------------------------
  1846.  
  1847.                                      (Fig. 2)
  1848.       
  1849.  
  1850.  
  1851.  
  1852.  
  1853.  
  1854.  
  1855.  
  1856.  
  1857.  
  1858.  
  1859.  
  1860.  
  1861.  
  1862.  
  1863.  
  1864.  
  1865.           See Chapter 3, 'The Debugger Shell', 
  1866.       for  a  detailed  description  of  each 
  1867.       command.
  1868.  
  1869.  
  1870.  
  1871.       Part I, Commands Overview         page 17
  1872.  
  1873.       C O M S O F T                    VMiX 286
  1874.  
  1875.  
  1876.                  COMMAND SUMMARY
  1877.  
  1878.            All the available shell commands or 
  1879.       tokens  are  summarized  in   Figure  3, 
  1880.       below.   VMiX has  2 shells levels  that 
  1881.       correspond to 3 layers of token nesting. 
  1882.       Shell  level 0 is the top or root  layer 
  1883.       of  tokens.  The  debugger shell is  the 
  1884.       next  shell level, it contains  2 layers 
  1885.       of tokens or commands.
  1886.  
  1887.            The basic rule of token  parsing by 
  1888.       the VMiX command interpreter is that  to 
  1889.       reach a token at a higher layer you must 
  1890.       invoke  the token(s) at the lower layers 
  1891.       of the shell level you are at. 
  1892.  
  1893.            For example,  to execute the  token 
  1894.       read  from  the  root  shell level,  you 
  1895.       should type   debug read,  but from  the 
  1896.       debugger shell level (you are already at 
  1897.       layer 1) you need only type read.
  1898.  
  1899.            If a token has no action associated 
  1900.       with  itself,  but instead is a path  to 
  1901.       several  sub-tokens at the  next  higher 
  1902.       layer,  then typing just that token will 
  1903.       display,  on  the  screen,  the  choices
  1904.       available for the sub-tokens to complete
  1905.       the command.
  1906.  
  1907.            For example,  if you type the token 
  1908.       set  from  inside  the  debugger  shell, 
  1909.       the sub-tokens (next layer) belonging to 
  1910.       'set'  will be displayed  (ie., 'video', 
  1911.       'remote', 'baud', 'debug', ...).   Then, 
  1912.       if you type  set video, since there are 
  1913.       no deeper tokens, the switches belonging 
  1914.       to   'set  video'  will  be   displayed.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.       Part I, Commands Overview         page 18
  1920.  
  1921.       C O M S O F T                    VMiX 286
  1922.  
  1923.       Finally,  you type  set video -m  to set 
  1924.       the video mode and VMiX will prompt  you 
  1925.       with  a  menu  of available  video  mode 
  1926.       settings.  You select video mode '6' for 
  1927.       640 x 200 BW graphics.
  1928.  
  1929.            The  paragraph above describes  the 
  1930.       learning curve for VMiX. Had you already
  1931.       been familiar  with the debugger  shell,
  1932.       you would have typed  the single command 
  1933.       line: set video -m6.
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963.  
  1964.  
  1965.  
  1966.  
  1967.       Part I, Commands Overview         page 19
  1968.  
  1969.       C O M S O F T                    VMiX 286
  1970.  
  1971.  
  1972.  
  1973.  
  1974. |ROOT   |DEBUG                                    |
  1975.  
  1976. |LEVEL..|LEVEL....................................|
  1977. |   0   |   1   |   2                             |
  1978. ---------------------------------------------------
  1979. |debug                                            |
  1980. |       |read                                     |
  1981. |       |write                                    |
  1982. |       |set                                      |
  1983. |               |baud                             |
  1984. |                  -c  " sets communications: chan|
  1985. |                        baud, parity, word, stop"|
  1986. |               |dos                              |
  1987. |                  -m  " toggles DOS shell        |
  1988. |                        emulation mode ON/OFF"   |
  1989. |                  -n  " sets DOS INT21 function  |
  1990. |                        maximum nesting level"   |
  1991. |                  -p  " sets DOS current process |
  1992. |                        PSP: nuPSP(seg)"         |
  1993. |               |font                             |
  1994. |                  -t  " sets font type: (0 - 3)" |
  1995. |               |pool                             |
  1996. |                  -a  " adjusts transient        |
  1997. |                        program memory:          |
  1998. |                        MCB(seg), nusize(para)"  |
  1999. |                  -m  " sets transient program   |
  2000. |                        partition size:          |
  2001. |                        (0 - 1024K)"             |
  2002. |                  -o  " sets transient program   |
  2003. |                        memory owner:            |
  2004. |                        MCB(seg), nuPSP(seg)"    |
  2005. ---------------------------------------------------
  2006.  
  2007.                     (Fig. 3)
  2008.  
  2009.  
  2010.  
  2011.  
  2012.  
  2013.  
  2014.  
  2015.       Part I, Commands Overview         page 20
  2016.  
  2017.       C O M S O F T                    VMiX 286
  2018.  
  2019.  
  2020.  
  2021.  
  2022. |ROOT   |DEBUG                                    |
  2023.  
  2024. |LEVEL..|LEVEL....................................|
  2025. |   0   |   1   |   2                             |
  2026. ---------------------------------------------------
  2027. |               |process                          |
  2028. |                  -b  " sets process shell buffer|
  2029. |                        size: (0 - 127)"         |
  2030. |                  -e  " toggles system evironment|
  2031. |                        protection ON/OFF"       |
  2032. |                  -h  " toggles process hardware |
  2033. |                        priviledge ON/OFF"       |
  2034. |                  -p  " sets process priority:   |
  2035. |                        (0 - 31)"                |
  2036. |               |remote                           |
  2037. |                  -c  " sets remote channel"     |
  2038. |                  -l  " sets polled terminal     |
  2039. |                        login channel"           |
  2040. |               |system                           |
  2041. |                  -m  " toggles manager message  |
  2042. |                        displays ON/OFF"         |
  2043. |                  -s  " toggles scheduler swapped|
  2044. |                        processing ON/OFF"       |
  2045. |                  -t  " toggles scheduler clock  |
  2046. |                        processing ON/OFF"       |
  2047. |                  -w  " sets shutdown wait delay:|
  2048. |                        seconds"                 |
  2049. |               |terminal                         |
  2050. |                  -t  " sets terminal type:      |
  2051. |                        (0 - 9)"                 |
  2052. ---------------------------------------------------
  2053.  
  2054.                (Fig. 3 continued)
  2055.  
  2056.  
  2057.  
  2058.  
  2059.  
  2060.  
  2061.  
  2062.  
  2063.       Part I, Commands Overview         page 21
  2064.  
  2065.       C O M S O F T                    VMiX 286
  2066.  
  2067.  
  2068.  
  2069. |ROOT   |DEBUG                                    |
  2070.  
  2071. |LEVEL..|LEVEL....................................|
  2072. |   0   |   1   |   2                             |
  2073. ---------------------------------------------------
  2074. |               |video                            |
  2075. |                  -c  " sets video background/   |
  2076. |                        foreground colors"       |
  2077. |                  -C  " sets window color attrib"|
  2078. |                  -m  " sets video mode:(0 - 16)"|
  2079. |                  -s  " toggles status line      |
  2080. |                        display ON/OFF"          |
  2081. |                  -w  " sets root window size:   |
  2082. |                        y0, x0, y1, x1"          |
  2083. |                  -W  " auto partitions (1 - 4)  |
  2084. |                        task windows             |
  2085. |                        (Shift-Tab toggles kbd)" |
  2086. |       |init                                     |
  2087. |               |comm                             |
  2088. |                  -c  " sets communications: chan|
  2089. |                        baud, parity, word, stop"|
  2090. |       |examine                                  |
  2091. |               |memory                           |
  2092. |               |mcb                              |
  2093. |               |kernel                           |
  2094. |       |assign                                   |
  2095. |               |gdt                              |
  2096. |       |deassign                                 |
  2097. |               |gdt                              |
  2098. |               |memory                           |
  2099. |       |quit                                     |
  2100. ---------------------------------------------------
  2101.  
  2102.                (Fig. 3 continued)
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  
  2111.       Part I, Commands Overview         page 22
  2112.  
  2113.       C O M S O F T                    VMiX 286
  2114.  
  2115.  
  2116.  
  2117. |ROOT   |DEBUG                                    |
  2118.  
  2119. |LEVEL..|LEVEL....................................|
  2120. |   0   |   1   |   2                             |
  2121. ---------------------------------------------------
  2122. |rshell                                           |
  2123. |remote                                           |
  2124. |  -c  " sets remote channel"                     |
  2125. |  -l  " sets polled terminal login channel"      |
  2126. |swap                                             |
  2127. |       |'process id'                             |
  2128. |chprio                                           |
  2129. |       |'process id and new priority level'      |
  2130. |exec                                             |
  2131. |  -a  " adjusts transient program memory:        |
  2132. |        MCB(seg), nusize(para)"                  |
  2133. |  -m  " sets transient program memory partition  |
  2134. |        size: (0 - 1024K)"                       |
  2135. |  -o  " sets transient program memory owner:     |
  2136. |        MCB(seg), nuPSP(seg)"                    |
  2137. |       |path                                     | 
  2138. |              " utility displays/sets program    |
  2139. |                file search path"                |
  2140. |       |dpath[.exe]                              |
  2141. |              " utility displays/sets data file  |
  2142. |                search path"                     |
  2143. |          -v  " sets verbose mode"               |
  2144. |          -q  " sets quiet mode"                 |
  2145. |          -r  " allows data read only"           |
  2146. |          -w  " allows data read/write"          |
  2147. |          -h  " help"                            |
  2148. |       |dstat[.exe]                              |
  2149. |              " utility displays all objects"    |
  2150. |          -a  " selects only assigned objects"   |
  2151. |          -r  " selects only free objects"       |
  2152. ---------------------------------------------------
  2153.  
  2154.                (Fig. 3 continued)
  2155.  
  2156.  
  2157.  
  2158.  
  2159.       Part I, Commands Overview         page 23
  2160.  
  2161.       C O M S O F T                    VMiX 286
  2162.  
  2163.  
  2164.  
  2165. |ROOT   |DEBUG                                    |
  2166.  
  2167. |LEVEL..|LEVEL....................................|
  2168. |   0   |   1   |   2                             |
  2169. ---------------------------------------------------
  2170. |       |monitor[.exe]                            |
  2171. |              " utility monitors process/system" |
  2172. |          -p  " monitors VMiX memory pool"       |
  2173. |          -r  " monitors process registers:      |
  2174. |                process id"                      |
  2175. |               |'process id'                     |
  2176. |       |ps[.exe]                                 |
  2177. |              " utility displays all processes"  |
  2178. |       |'MSDOS command...'                       |
  2179. |dosjob                                           |
  2180. | [-W]  " gives process the full screen"          |
  2181. |       |'MSDOS command or /VMiX command...'      |
  2182. |spawn                                            |
  2183. |  -c   " sets I/O channel for STDIO and gets     |
  2184. |         command line script"                    |
  2185. |kill                                             |
  2186. |       |'process id'                             |
  2187. |quit                                             |
  2188. ---------------------------------------------------
  2189.  
  2190.                (Fig. 3 continued)
  2191.  
  2192.  
  2193.  
  2194.  
  2195.  
  2196.  [ ] indicates optional
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207.       Part I, Commands Overview         page 24
  2208.  
  2209.       C O M S O F T                    VMiX 286
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.  
  2220.  
  2221.  
  2222.  
  2223.  
  2224.  
  2225.  
  2226.  
  2227.  
  2228.  
  2229.  
  2230.  
  2231.  
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.  
  2249.  
  2250.  
  2251.  
  2252.  
  2253.  
  2254.  
  2255.       Part I, Commands Overview         page 25
  2256.  
  2257.  
  2258.  
  2259.  
  2260.  
  2261.  
  2262.  
  2263.  
  2264.  
  2265.  
  2266.                     PART TWO
  2267.  
  2268.  
  2269.                     VMiX 286
  2270.  
  2271.  
  2272.  
  2273.  
  2274.  
  2275.  
  2276.  
  2277.  
  2278.                     CHAPTER 1
  2279.  
  2280.  
  2281.                  USING VMIX 286
  2282.  
  2283.  
  2284.  
  2285.  
  2286.  
  2287.  
  2288.  
  2289.  
  2290.  
  2291.  
  2292.  
  2293.  
  2294.  
  2295.  
  2296.  
  2297.  
  2298.  
  2299.  
  2300.  
  2301.  
  2302.  
  2303.       Part II, Using VMiX 286         page 1-1
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.  
  2315.  
  2316.  
  2317.  
  2318.  
  2319.  
  2320.  
  2321.  
  2322.  
  2323.  
  2324.  
  2325.  
  2326.  
  2327.  
  2328.  
  2329.  
  2330.  
  2331.  
  2332.  
  2333.  
  2334.  
  2335.  
  2336.  
  2337.  
  2338.  
  2339.  
  2340.  
  2341.  
  2342.  
  2343.  
  2344.  
  2345.  
  2346.  
  2347.  
  2348.  
  2349.  
  2350.  
  2351.       Part II, Using VMiX 286         page 1-2
  2352.  
  2353.       C O M S O F T                   VMiX 286
  2354.  
  2355.  
  2356.  
  2357.  
  2358.       VMiX START-UP
  2359.  
  2360.  
  2361.            VMiX  presently has no installation 
  2362.       options,  but  can be pre-initialized to 
  2363.       your desired state by including commands 
  2364.       with its invocation.  The section titled 
  2365.       'Using the Command  Line'  describes how
  2366.       to include  VMiX commands  in a start-up
  2367.       batch  file,  for  completely  automatic
  2368.       execution.
  2369.  
  2370.            VMiX  is easy  to install.   Simply
  2371.       copy  the executable  files  in the VMiX
  2372.       archive  to your  directory  and execute
  2373.       the boot module VM_BOOT.EXE.
  2374.  
  2375.            If  you  can  execute  your  appli-
  2376.       cations from  MSDOS,  they  are  already
  2377.       installed for VMiX.  VMiX does  not  use
  2378.       PIF   or   other  types  of  application
  2379.       configuration files.  Applications  that
  2380.       write   directly  to  the   screen  will
  2381.       usually  coexist with other applications
  2382.       at  the console,  but  will  not display
  2383.       properly at a COMM port terminal or PC.
  2384.  
  2385.  
  2386.  
  2387.  
  2388.  
  2389.  
  2390.  
  2391.  
  2392.  
  2393.  
  2394.  
  2395.  
  2396.  
  2397.  
  2398.  
  2399.       Part II, VMiX Start-Up          page 1-3
  2400.  
  2401.       C O M S O F T                   VMiX 286
  2402.  
  2403.  
  2404.  
  2405.  
  2406.       INTERFACE TO MSDOS
  2407.  
  2408.  
  2409.       exec                        Starting
  2410.                                      a Program
  2411.  
  2412.  
  2413.            VMiX  provides access to the  MSDOS 
  2414.       command  shell  with  the  root  command 
  2415.       exec.  The command syntax is:
  2416.  
  2417.                exec [ MSDOS command ]
  2418.  
  2419.            Two  or more VMiX processes can use 
  2420.       the  exec   command  to  access   MSDOS, 
  2421.       provided that:
  2422.  
  2423.       a)  All transient program memory has not 
  2424.       been previously allocated (.COM programs 
  2425.       will  do this,  as well as .EXE  program 
  2426.       which have not been modified with exemod 
  2427.       an MSDOS utility program). The -m switch
  2428.       can  be  used  with  exec to control the
  2429.       amount  of  memory  that  .COM  or  .EXE
  2430.       programs can grab.
  2431.  
  2432.       b)  MSDOS  is  not busy  with  a  nested 
  2433.       function  call  beyond the initial  exec 
  2434.       call from VMiX.  If another VMiX process 
  2435.       has  also  invoked MSDOS  services  that 
  2436.       have not completed,  then VMiX will wait 
  2437.       for  MSDOS  to say that  it  can  handle 
  2438.       another  request.   The user waiting for 
  2439.       MSDOS  access can determine the  process 
  2440.       currently  using  (and  not   releasing) 
  2441.       MSDOS  by  examining the VMiX  parameter 
  2442.       'doslevel'  from the VMiX debugger  with 
  2443.       the utility monitor.exe.
  2444.  
  2445.  
  2446.  
  2447.       Part II, VMiX Start-Up          page 1-4
  2448.  
  2449.       C O M S O F T                   VMiX 286
  2450.  
  2451.  
  2452.  
  2453.  
  2454.  
  2455.       exec                     Controlling
  2456.                                     Memory Use
  2457.  
  2458.  
  2459.            To control  memory use  within  the
  2460.       640K that VMiX  utilizes, exec  provides
  2461.       the -m option. When exec -m???? has been
  2462.       specified,  all programs will be limited
  2463.       to partitions  equal or smaller than the
  2464.       size (in kilobytes),  specified with the
  2465.       command.  The command syntax is:
  2466.  
  2467.            exec -m [ max. K bytes ]
  2468.  
  2469.            The recommended start-up  partition
  2470.       size is 256 kilobytes:  exec -m256
  2471.  
  2472.            The use of exec  as a prefix to DOS
  2473.       commands  becomes  optional if the  user
  2474.       has  enabled  DOS shell  emulation  from 
  2475.       within the VMiX  debugger.   MSDOS shell
  2476.       emulation is toggled by the command:
  2477.  
  2478.            debug set dos -m
  2479.  
  2480.       The exec command is described further in
  2481.       Chapter 2,'The Root Shell'.
  2482.  
  2483.  
  2484.  
  2485.  
  2486.  
  2487.  
  2488.  
  2489.  
  2490.  
  2491.  
  2492.  
  2493.  
  2494.  
  2495.       Part II, VMiX Start-Up          page 1-5
  2496.  
  2497.       C O M S O F T                   VMiX 286
  2498.  
  2499.  
  2500.  
  2501.  
  2502.  
  2503.       dosjob                    Starting
  2504.                                      a Program
  2505.                                    in a Window
  2506.  
  2507.  
  2508.            VMiX  provides a second command for
  2509.       windowed  access  to  the  MSDOS command
  2510.       shell.  The command syntax is:
  2511.  
  2512.                dosjob [-W][ MSDOS command ]
  2513.  
  2514.            Up to four VMiX  processes  can use 
  2515.       the dosjob command to access MSDOS. 
  2516.       
  2517.            To use  'dosjob'  to run  a program
  2518.       that requires access to the full screen,
  2519.       use the '-W' option:
  2520.  
  2521.       (ie., 'dosjob -W [drive:][PATH]filename')
  2522.  
  2523.            dosjob can also  be used to execute
  2524.       VMiX  shell  command(s)  in  a  separate
  2525.       console  window,    VMiX  shell commands
  2526.       given  to a  'dosjob'  must  be preceded
  2527.       with  a  '/'  (ie.,  'dosjob /debug'  or
  2528.       'dosjob /rshell').  The  '/' must not be
  2529.       used,  if the command  is for MSDOS, for
  2530.       example 'do gwbasic' or 'do dir'.
  2531.  
  2532.       NOTICE, that  after  a  'dosjob' command
  2533.       the keyboard moves to the new process.
  2534.  
  2535.  
  2536.  
  2537.  
  2538.  
  2539.  
  2540.  
  2541.  
  2542.  
  2543.       Part II, VMiX Start-Up          page 1-6
  2544.  
  2545.       C O M S O F T                   VMiX 286
  2546.  
  2547.  
  2548.  
  2549.  
  2550.       VMiX CONFIGURATION
  2551.  
  2552.  
  2553.  
  2554.       CONFIGURATION:
  2555.  
  2556.       SYS_MAXPROC  8   total number of processes
  2557.       SYS_MAXOBJ  27   total number of objects
  2558.       SYS_MAXTYP  10   total number of object types
  2559.       SYS_NTTY     5   total number of terminals
  2560.       SYS_NPRN     2   total number of printers
  2561.       SYS_NVOM    10   total number of managers
  2562.       SYS_MAXTDB  10   total num. of terminal types
  2563.       SYS_MAXFUN  10   total number of driver funcs
  2564.       SYS_MAXCHAN 16   total number of channels
  2565.       SYS_NPSTATE 18   total num. of queued pstates
  2566.       SYS_NOSTATE  2   total num. of queued ostates
  2567.       SYS_INITPRI  7   new process initial priority
  2568.       SYS_EXEPRI   2   lowest priority adjust
  2569.       SYS_MAXPRI  31   system highest priority
  2570.       SYS_TABLEN  10   max. entries in shell table
  2571.       SYS_MAXTOK  10   total number of token tables
  2572.       SYS_MAXARG  10   total number of arg tables
  2573.       SYS_SHLBUF  128  shell command buffer size
  2574.       SYS_INITSTK 2048 new proc default stack size
  2575.       SYS_MINSTK  512  process minimum stack size
  2576.       SYS_NULLSTK 512  NULL process stack size
  2577.       SYS_PAGE    512  memory page size bytes
  2578.       SYS_EPAGE  65536 extended page size bytes
  2579.       SYS_PRVSTKS  4   num. of priviledge stacks
  2580.       SYS_MAXGDT  32   total num of gdt descriptors
  2581.       SYS_MAXLDT  32   total num of ldt descriptors
  2582.       SYS_PNMLEN   8   process name maximum length
  2583.       SYS_SLICE    0   clock tick scheduler step
  2584.       SYS_QUANTUM  0   preempt base count
  2585.       NULLPID      0   NULL process id
  2586.       NULLUID      0   NULL object id
  2587.  
  2588.  
  2589.  
  2590.  
  2591.       Part II, VMiX Start-Up          page 1-7
  2592.  
  2593.       C O M S O F T                   VMiX 286
  2594.  
  2595.  
  2596.  
  2597.  
  2598.       USING THE COMMAND LINE
  2599.  
  2600.  
  2601.       VM_BOOT [-r][ [ command ] /... ]
  2602.  
  2603.           VMiX presently has no initialization 
  2604.       options,  but will accept a command line 
  2605.       of up to 127 characters long.   Multiple 
  2606.       commands can be entered, separated by  a 
  2607.       valid  VMiX delimiter  '/'  ','  tab  or 
  2608.       space.
  2609.  
  2610.            Since  all root and debugger  shell 
  2611.       commands   can  be  executed  from   the 
  2612.       command line,  the user has a wide range 
  2613.       of control over the state VMiX begins in.  
  2614.       You  will  learn  the  shell commands in
  2615.       Chapters 2 and 3.  For now, the examples 
  2616.       below  illustrate  some useful  ways  to 
  2617.       invoke  VMiX,  other  than the  standard 
  2618.       VM_BOOT, typed with no commands.
  2619.           
  2620.  
  2621.  
  2622.       EXAMPLES:
  2623.  
  2624.       VM_BOOT set video -m6/set system -m/
  2625.               set system -t/set video -s<RETURN>
  2626.  
  2627.       (This could also be typed as shown below, 
  2628.       since  the shell only needs a minimum of 
  2629.       two characters to recognize a token.)
  2630.  
  2631.       VM_BOOT se vi -m6/se sys -m/
  2632.               se sys -t/se vi -s<RETURN>
  2633.  
  2634.       The  above command  lines,  invoke  VMiX 
  2635.       from MSDOS A> prompt.  The video mode of 
  2636.       the  root console is set to 6 (640 x 200 
  2637.  
  2638.  
  2639.       Part II, Using the Command Line page 1-8
  2640.  
  2641.       C O M S O F T                   VMiX 286
  2642.  
  2643.  
  2644.       BW graphics mode);  the  debugger object
  2645.       manager messages are  toggled ON; logins
  2646.       and  multitasking are disabled, and  the
  2647.       root console's status line is toggled ON.
  2648.  
  2649.  
  2650.       VM_BOOT set remote -l2/set term -t4
  2651.               set baud -c2 300,n,8,1<RETURN>
  2652.  
  2653.       The  above command  line,  invokes  VMiX 
  2654.       from MSDOS A> prompt.  Sets VMiX to poll 
  2655.       COM2:   for   logins  and  selects   the 
  2656.       terminal type to be (4)VT-100.  The VMiX
  2657.       default terminal type is 9,  backspacing 
  2658.       teletype.   The communication parameters 
  2659.       for VMiX channel 2, which coincides with 
  2660.       COM2:,  are  reset  to 300 baud with  no 
  2661.       parity checking.
  2662.  
  2663.       NOTE:  Normally,  VMiX  polls only COM1: 
  2664.       for  logins.   The default baud rate  is 
  2665.       9600  with  no  parity.   Once  started, 
  2666.       processes  can  run on any  serial  port 
  2667.       simultaneously.  However, presently only 
  2668.       one   port  at  a  time  is   monitored, 
  2669.       awaiting  for  some  user  to  press  an 
  2670.       attention  getting <RETURN>.  If COM1: has  
  2671.       been  assigned  to  a printer  or  other 
  2672.       device,  use  the above command line  to 
  2673.       set  your  second user terminal  to  use 
  2674.       COM2:!!!
  2675.  
  2676.  
  2677.                   COMMON TERMINALS:
  2678.  
  2679.                 -t0 = TELEVIDEO 910/920
  2680.                 -t1 = ADM3A
  2681.                 -t2 = VT-52
  2682.                 -t3 = ZENITH H19
  2683.                 -t4 = VT-100
  2684.                 -t9 = tty
  2685.  
  2686.  
  2687.       Part II, Using the Command Line page 1-9
  2688.  
  2689.       C O M S O F T                   VMiX 286
  2690.  
  2691.  
  2692.  
  2693.       VM_BOOT set vi -m3/exec b:basic<RETURN>
  2694.  
  2695.       The  above  command line,  invokes  VMiX 
  2696.       from MSDOS A> prompt.  The video mode of 
  2697.       the  root  console is set to 3 (80 x  25 
  2698.       alphanumeric  with  color,  required  by 
  2699.       BASIC for start-up); invokes the foreign 
  2700.       dos  exec command, (MSDOS, in this case) 
  2701.       to run the BASIC interpreter in drive b:.
  2702.  
  2703.       NOTE:  Since  the command line was typed 
  2704.       from MSDOS A> prompt,  A: is the default 
  2705.       drive.  VMiX  exec  command  expects  an 
  2706.       MSDOS  command.com  file present in  the 
  2707.       boot drive!!!  BASIC expects the initial 
  2708.       screen video mode to be 3, alphanumeric.  
  2709.       The same is true of Microsoft WINDOWS.
  2710.  
  2711.  
  2712.       VM_BOOT set font -t1/set proc -b64/
  2713.               set video -m6<RETURN>
  2714.  
  2715.       The  above command  line,  invokes  VMiX 
  2716.       from MSDOS A> prompt.   Sets VMiX to use 
  2717.       compressed  characters   (font type  1), 
  2718.       requests that the shell command line  be 
  2719.       up to 64 characters long, and resets the 
  2720.       video to 640 x 200 CGA graphics mode.  
  2721.  
  2722.  
  2723.       VM_BOOT set vi -m3/assign srcsink 0/
  2724.          spawn -c5 set vi -W/exec basic<RETURN>
  2725.  
  2726.       The  above  command line,  invokes  VMiX 
  2727.       from MSDOS A> prompt.  The video mode of 
  2728.       the  root  console  is set  to  3, a new
  2729.       channel to the console  is obtained; and
  2730.       a task  is spawned  to the  new channel,
  2731.       the screen  is  windowed,  and  BASIC is
  2732.       executed.    The  same  results  can  be
  2733.  
  2734.  
  2735.       Part II, Using the Command Line page 1-10
  2736.  
  2737.       C O M S O F T                   VMiX 286
  2738.  
  2739.  
  2740.  
  2741.       obtained  with  the  command  line shown
  2742.       below:
  2743.  
  2744.       VM_BOOT dosjob basic<RETURN>
  2745.  
  2746.       This illustrates the power of the dosjob
  2747.       command or 'do', for short.  Note VMiX's
  2748.       default video mode  is  3,  alphanumeric
  2749.       text.
  2750.  
  2751.  
  2752.  
  2753.  
  2754.  
  2755.  
  2756.  
  2757.  
  2758.  
  2759.  
  2760.  
  2761.  
  2762.  
  2763.  
  2764.  
  2765.  
  2766.  
  2767.  
  2768.  
  2769.  
  2770.  
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776.  
  2777.  
  2778.  
  2779.  
  2780.  
  2781.  
  2782.  
  2783.       Part II,Using the Command Line page 1-11
  2784.  
  2785.       C O M S O F T                   VMiX 286
  2786.  
  2787.  
  2788.  
  2789.  
  2790.       SYSTEM CONSOLE DISPLAY
  2791.  
  2792.  
  2793.            The VMiX operator console,  is  the 
  2794.       host  PC  video  display  and  keyboard.  
  2795.       This user has root priviledges.
  2796.  
  2797.            If the system has a color  graphics 
  2798.       adapter,  the default  console  mode  is 
  2799.       80 x 25 alphanumeric text.   If there is
  2800.       a monochrome adapter  (MDA), the default
  2801.       and only mode allowed is monochrome. For
  2802.       EGA of VGA  video  adapters  the default
  2803.       starting mode  is  the same  as for CGA,
  2804.       however  additional  graphics modes  are
  2805.       supported  with  these  adapters   (use:
  2806.       debug  set  video -m   to  select  other
  2807.       modes).
  2808.  
  2809.            Multiple  console   processes   are
  2810.       supported  by  the debugger set video -W
  2811.       command,  which automatically partitions
  2812.       screen windows for the background tasks;
  2813.       and by  the  hot key,  Shift-Tab,  which
  2814.       moves the keyboard to any of the windows.
  2815.  
  2816.            The set video -W  command  is fully
  2817.       automatic.   It should  be used  after a
  2818.       new  channel  has been  assigned  to the
  2819.       console, COMM = 0.  The  upper case '-W'
  2820.       command, as opposed to the manual window 
  2821.       select '-w',  uses  the  tally  of  COM0
  2822.       channels to chose the number and size of
  2823.       the windows needed.  This command can be
  2824.       used within  a spawn command or previous 
  2825.       to it.  All tasks running in the windows
  2826.       will   execute   concurrently   in   the
  2827.       background, regardless of which one owns
  2828.       the console keyboard.
  2829.  
  2830.  
  2831.       Part II,Using the Command Line page 1-12
  2832.  
  2833.       C O M S O F T                   VMiX 286
  2834.  
  2835.  
  2836.  
  2837.           The root shell provides two commands
  2838.       that request services (from MSDOS).  The
  2839.       first, 'exec', has  as its  argument any
  2840.       valid  MSDOS  command,   which  is  then
  2841.       executed  by the  current  process.  The
  2842.       second  is  a  multitasking  version  of
  2843.       'exec'.  The command  'dosjob' takes the
  2844.       same arguments as 'exec',  but the MSDOS
  2845.       command is executed in the background by
  2846.       a new process, in a separate window. The
  2847.       hot key, <Shift><Tab>,  can  be used  to
  2848.       switch the keyboard to the right window.
  2849.  
  2850.  
  2851.  
  2852.  
  2853.  
  2854.  
  2855.  
  2856.  
  2857.  
  2858.  
  2859.  
  2860.  
  2861.  
  2862.  
  2863.  
  2864.  
  2865.  
  2866.  
  2867.  
  2868.  
  2869.  
  2870.  
  2871.  
  2872.  
  2873.  
  2874.  
  2875.  
  2876.  
  2877.  
  2878.  
  2879.       Part II,Using the Command Line page 1-13
  2880.  
  2881.       C O M S O F T                   VMiX 286
  2882.  
  2883.  
  2884.  
  2885.  
  2886.                    SHELL COMMANDS
  2887.  
  2888.  
  2889.            When   the  VMiX  start-up   screen 
  2890.       displays   the  initial  command  prompt 
  2891.       'A> ______', press the <RETURN> key to see 
  2892.       the  available commands (or tokens)  for 
  2893.       the root shell level (Fig. 1). 
  2894.  
  2895.            The full name of the token need not 
  2896.       be entered in a command,  the shell will 
  2897.       recognize  the command by  the first two 
  2898.       characters, if  only  two  were  entered 
  2899.       (otherwise,  it  tries to match as  many 
  2900.       characters as were entered).
  2901.  
  2902.            VMiX   has  presently   two   shell 
  2903.       levels,  the root shell and the debugger
  2904.       shell,  each with its own group of legal 
  2905.       commands   (tokens).    The  shells  are 
  2906.       driven by token tables.   Any token can, 
  2907.       in-turn,  point  to  its  own  secondary 
  2908.       token table.  For example set is a valid 
  2909.       debugger shell token, that owns  a table 
  2910.       of   its  own.    The 'set'  token table 
  2911.       contains the sub-tokens (video,  remote, 
  2912.       baud,  system,  dos,  font,  terminal,
  2913.       process  and  pool).  Therefore, you can
  2914.       enter  a command like  set video<RETURN> or
  2915.       set baud <RETURN>.
  2916.  
  2917.            Now, 'set video' does not  say much 
  2918.       by itself,  except that you wish to  set 
  2919.       the video display to some state.   Token 
  2920.       arguments   or  switches  complete   the 
  2921.       command.  The  token video,  abbreviated 
  2922.       vi, has a list of arguments that it will 
  2923.       accept.   All arguments are  preceded by 
  2924.       the switch character '-',  (ie., -s, -m, 
  2925.       -m6).
  2926.  
  2927.       Part II, Using VMiX 286        page 1-14
  2928.  
  2929.       C O M S O F T                   VMiX 286
  2930.  
  2931.  
  2932.  
  2933.            The  shell will help  you,  if  you 
  2934.       forget  what  are  the  valid  secondary 
  2935.       tokens and arguments.  Just type as much 
  2936.       as you  know, and VMiX will display  the 
  2937.       available choices. For example, from the 
  2938.       debugger   shell,  type  set  and  press 
  2939.       <RETURN>.   A list of secondary tokens and 
  2940.       arguments will follow.
  2941.  
  2942.            If an argument can take values, you 
  2943.       have the option of entering the value(s) 
  2944.       after  the argument switch,  or the VMiX 
  2945.       shell  will,  in most cases,  prompt for 
  2946.       the values omitted.
  2947.  
  2948.            To enter a command belonging to  an 
  2949.       alternate shell,  while still inside the 
  2950.       current shell level,  simply precede the 
  2951.       command  with the alternate shell  name.  
  2952.       For  example,  from the root shell  (the 
  2953.       prompt  is  'A> __________')  to enter a 
  2954.       debugger  command  precede  the  command 
  2955.       with debug. (ie., deb set vi -m3).
  2956.  
  2957.       Note:  You do not return to the starting 
  2958.       shell,  but  to the one invoked with the 
  2959.       command.   VMiX Version 1.4X will allow,
  2960.       in most cases, for a debugger command to
  2961.       be typed from the root shell without the
  2962.       debug prefix. 
  2963.  
  2964.  
  2965.  
  2966.  
  2967.  
  2968.  
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974.  
  2975.       Part II, Using VMiX 286        page 1-15
  2976.  
  2977.       C O M S O F T                   VMiX 286
  2978.  
  2979.  
  2980.  
  2981.  
  2982.       LOGIN TERMINALS
  2983.  
  2984.  
  2985.            VMiX supports users on  COM1, COM2,
  2986.       COM3, and COM4 serial ports on an IBM PC 
  2987.       or  compatible.    The default baud rate 
  2988.       is 9600.  Presently, VMiX does not synch 
  2989.       on  the baud rate.   The baud  rate  for 
  2990.       COMM channels  can be  changed  from the 
  2991.       debugger shell or the MSDOS command line 
  2992.       by using:
  2993.  
  2994.          set baud -c????,baud,parity,word,stop
  2995.  
  2996.            It is strictly by  convention  that 
  2997.       COM1, COM2, COM3, and COM4  are assigned
  2998.       VMiX  object channels   1, 2, 3,  and 4,
  2999.       respectively.    These  ports   can   be
  3000.       assigned   other   channels   from   the
  3001.       debugger, simultaneously or exclusively.
  3002.  
  3003.            Initially,  only one serial port is 
  3004.       scanned for logins.  The default port is 
  3005.       COM1:,  but  this can be changed by  the 
  3006.       command   set remote -l2<RETURN>,  entered 
  3007.       from  the  debugger  shell or  from  the 
  3008.       MSDOS command line.   Technically,  VMiX 
  3009.       will support  more than COM1: to  COM4:, 
  3010.       but the user needs to configure channels 
  3011.       to other ports from the  debugger,  with 
  3012.       assign and set baud.
  3013.  
  3014.           From the login terminal, press<RETURN> 
  3015.       to receive  the   VMiX   login:  prompt.  
  3016.       Passwords are disabled in Release  1.3X, 
  3017.       so  any  8 character user name that  you 
  3018.       enter  is  acceptable  for  the   login.  
  3019.       Terminal  emulation  is by  default,  no 
  3020.       emulation.  To set the terminal type use 
  3021.       debug set terminal -t<RETURN>.
  3022.  
  3023.       Part II, Using VMiX 286        page 1-16
  3024.  
  3025.       C O M S O F T                   VMiX 286
  3026.  
  3027.  
  3028.  
  3029.  
  3030.                    TERMINAL TYPES
  3031.  
  3032.  
  3033.            Normally,  a  terminal or a PC will 
  3034.       be  connected  to the  host's  COM1:  or 
  3035.       COM2:   ports,   to   serve  as  a  user 
  3036.       workstation.  In both cases, you need to 
  3037.       tell VMiX what terminal type to  expect.  
  3038.       The  VMiX command  for  this is set term
  3039.       -t????, where:
  3040.        
  3041.                 -t0 = TELEVIDEO 910/920
  3042.                 -t1 = ADM3A
  3043.                 -t2 = VT-52
  3044.                 -t3 = ZENITH H19
  3045.                 -t4 = VT-100
  3046.                 -t9 = tty
  3047.  
  3048.  
  3049.            If a PC is used as a  terminal,  it 
  3050.       must   be  executing  a   communications 
  3051.       program    with   terminal    emulation.  
  3052.       Usually,  VT-100 terminal emulation will 
  3053.       be an adequate choice.
  3054.  
  3055.            VMiX  supports windows with  VT-100
  3056.       emulation,   however,    non-conflicting
  3057.       scrolling only works  with windows whose
  3058.       width is equal to the display (80 cols.)
  3059.       The  debugger  auto   windowing  command
  3060.       'set video -W'  should only be used at a
  3061.       VT-100  terminal,  when  no more  than 2
  3062.       STDIO channels are assigned to it.   The
  3063.       same applies to  the root shell  command
  3064.       'dosjob', when used from a terminal.
  3065.  
  3066.  
  3067.  
  3068.  
  3069.  
  3070.  
  3071.       Part II, Using VMiX 286        page 1-17
  3072.  
  3073.       C O M S O F T                   VMiX 286
  3074.  
  3075.  
  3076.  
  3077.  
  3078.                  IBM FUNCTION KEYS
  3079.  
  3080.  
  3081.            Pressing <Ctrl><F> from a terminal, 
  3082.       will  toggle-in  IBM  PC  function   key 
  3083.       emulation   (emulated by the digit keys)
  3084.       and  also provide  the [Ins], [Del], and
  3085.       [End]  keys,  invoked  by  pressing  ^I,
  3086.       ^D, or ^E.  The  <Alt> key  will  become
  3087.       the terminal's <Shift> key.
  3088.  
  3089.            The first time <Ctrl><F> is pressed
  3090.       the terminal will beep  and the function
  3091.       key substitutes will become  active; the
  3092.       second  time  ^F  is pressed, there will
  3093.       be  two beeps and the terminal keys will
  3094.       return to normal operation.
  3095.  
  3096.            In function key emulation mode, the
  3097.       arrow keys  will produce  the same codes
  3098.       that an  IBM PC  keyboard  produces, and
  3099.       the terminal's [Home] key will behave as
  3100.       in a  PC keyboard.   The IBM PC's  <Ctrl>
  3101.       [NumLock] function is provided by press-
  3102.       ing <Ctrl><S>, instead.
  3103.  
  3104.  
  3105.  
  3106.  
  3107.  
  3108.  
  3109.  
  3110.  
  3111.  
  3112.  
  3113.  
  3114.  
  3115.  
  3116.  
  3117.  
  3118.  
  3119.       Part II, Using VMiX 286        page 1-18
  3120.  
  3121.       C O M S O F T                   VMiX 286
  3122.  
  3123.  
  3124.  
  3125.  
  3126.                    ^F (1 beep)
  3127.  
  3128.         for                      press
  3129.  
  3130.         IBM PC KEY               TERMINAL KEY
  3131.  
  3132.           [F1]                         1
  3133.           [F2]                         2
  3134.           [F3]                         3
  3135.           [F4]                         4
  3136.           [F5]                         5
  3137.           [F6]                         6
  3138.           [F7]                         7
  3139.           [F8]                         8
  3140.           [F9]                         9
  3141.           [F10]                        10
  3142.  
  3143.           <Ctrl>[Break]                ^C
  3144.           <Ctrl>[NumLock]              ^S
  3145.           [Ins]                        ^I
  3146.           [Del]                        ^D
  3147.           [End]                        ^E
  3148.           [Home]                      [Home]
  3149.           <Alt>                       <Shift>
  3150.  
  3151.  
  3152.  
  3153.       NOTE:  The <Ctrl> key  symbol  has  been
  3154.       abbreviated as ^.
  3155.  
  3156.  
  3157.  
  3158.  
  3159.  
  3160.  
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166.  
  3167.       Part II, Using VMiX 286        page 1-19
  3168.  
  3169.       C O M S O F T                   VMiX 286
  3170.  
  3171.  
  3172.  
  3173.  
  3174.       COMMUNICATIONS
  3175.  
  3176.  
  3177.            VMiX supports users on  COM1, COM2,
  3178.       COM3, and COM4 serial ports on an IBM PC 
  3179.       or compatible.  The term 'users' implies
  3180.       the ability to logon to those ports. The
  3181.       use of COM ports by VMiX for user logons
  3182.       can conflict with other users attempting
  3183.       to execute a communications program that
  3184.       also wants  to use the same COM port for
  3185.       serial communications.
  3186.  
  3187.            The conflict arises when VMiX polls
  3188.       the port  to  check  for  initial  logon
  3189.       activity.  VMiX is designed to poll only
  3190.       one assigned COM port at any given time.
  3191.       The assigned  port is  user configurable
  3192.       by using the command set remote -l ????.
  3193.  
  3194.            The  default  VMiX  assigned polled
  3195.       port is COM1.  This should be changed to
  3196.       a non-conflicting port, before executing
  3197.       a program  that will  use  COM1  for any
  3198.       activity.  The command  to set an alter-
  3199.       nate polled port is: .
  3200.  
  3201.  
  3202.         set remote -l1      (for COM1 logins)
  3203.         set remote -l2      (for COM2 logins)
  3204.         set remote -l3      (for COM3 logins)
  3205.         set remote -l4      (for COM4 logins)
  3206.  
  3207.  
  3208.  
  3209.  
  3210.  
  3211.  
  3212.  
  3213.  
  3214.  
  3215.       Part II, Using VMiX 286        page 1-20
  3216.  
  3217.       C O M S O F T                   VMiX 286
  3218.  
  3219.  
  3220.  
  3221.  
  3222.       EXTENDED MEMORY
  3223.  
  3224.  
  3225.            VMiX 286 executes all tasks  in low
  3226.       memory  (an area of physical memory also
  3227.       known as conventional memory).  VMiX can
  3228.       use 80286 extended memory  to swap tasks
  3229.       out of  conventional memory to make room
  3230.       in low memory for other tasks.  The root
  3231.       shell command  swap  controls the migra-
  3232.       tion of tasks  between  conventional and
  3233.       extended memories.
  3234.  
  3235.            If  a process is  in low memory, it
  3236.       will be swapped to extended 80286 memory.
  3237.       If the process  is already swapped, then
  3238.       it will be moved back  to low memory and
  3239.       resume execution.
  3240.  
  3241.            Swapped processes will not normally
  3242.       execute,  and will  stay suspended until
  3243.       they  are swapped  again  to low memory.
  3244.       To allow  swapped tasks to also execute,
  3245.       (less frequently than  in-memory  tasks)
  3246.       use the debugger command set system -s.
  3247.  
  3248.            VMiX  swapping  can  conflict  with
  3249.       other processes  using  extended memory.
  3250.       However, you can reserve extended memory
  3251.       for other uses, like caches, TSR's, etc.
  3252.       so that VMiX swapping will not interfere.
  3253.       Use the  'assign memory' command, before
  3254.       any swapping,  to assign extended memory
  3255.       above 1 MegByte (conventional memory).
  3256.  
  3257.       The command syntax is:
  3258.  
  3259.                assign MEMORY [ size in bytes ]
  3260.  
  3261.  
  3262.  
  3263.       Part II, Using VMiX 286        page 1-21
  3264.  
  3265.       C O M S O F T                   VMiX 286
  3266.  
  3267.  
  3268.  
  3269.  
  3270.  
  3271.  
  3272.  
  3273.  
  3274.  
  3275.  
  3276.  
  3277.  
  3278.  
  3279.  
  3280.  
  3281.  
  3282.  
  3283.  
  3284.  
  3285.  
  3286.  
  3287.  
  3288.  
  3289.  
  3290.  
  3291.  
  3292.  
  3293.  
  3294.  
  3295.  
  3296.  
  3297.  
  3298.  
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304.  
  3305.  
  3306.  
  3307.  
  3308.  
  3309.  
  3310.  
  3311.       Part II, Using VMiX 286        page 1-22
  3312.  
  3313.  
  3314.  
  3315.  
  3316.  
  3317.  
  3318.  
  3319.  
  3320.  
  3321.  
  3322.                     PART TWO
  3323.  
  3324.  
  3325.                     VMiX 286
  3326.  
  3327.  
  3328.  
  3329.  
  3330.  
  3331.  
  3332.  
  3333.  
  3334.                     CHAPTER 2
  3335.  
  3336.  
  3337.                  THE ROOT SHELL
  3338.  
  3339.  
  3340.  
  3341.  
  3342.  
  3343.  
  3344.  
  3345.  
  3346.  
  3347.  
  3348.  
  3349.  
  3350.  
  3351.  
  3352.  
  3353.  
  3354.  
  3355.  
  3356.  
  3357.  
  3358.  
  3359.       Part II, The Root Shell        page 2-1
  3360.  
  3361.  
  3362.  
  3363.  
  3364.  
  3365.  
  3366.  
  3367.  
  3368.  
  3369.  
  3370.  
  3371.  
  3372.  
  3373.  
  3374.  
  3375.  
  3376.  
  3377.  
  3378.  
  3379.  
  3380.  
  3381.  
  3382.  
  3383.  
  3384.  
  3385.  
  3386.  
  3387.  
  3388.  
  3389.  
  3390.  
  3391.  
  3392.  
  3393.  
  3394.  
  3395.  
  3396.  
  3397.  
  3398.  
  3399.  
  3400.  
  3401.  
  3402.  
  3403.  
  3404.  
  3405.  
  3406.  
  3407.       Part II, The Root Shell        page 2-2
  3408.  
  3409.       C O M S O F T                   VMiX 286
  3410.  
  3411.  
  3412.  
  3413.  
  3414.       NAME: debug
  3415.  
  3416.       OUTLINE:
  3417.  
  3418.       Purpose: To invoke the VMiX debugger shell.
  3419.  
  3420.  
  3421.       DESCRIPTION::
  3422.  
  3423.            debug is a root shell token.   This 
  3424.       command has 8 sub-tokens:
  3425.  
  3426.            read,  write,  set,  init, examine, 
  3427.            assign, deassign, and quit. 
  3428.  
  3429.       'debug',  by  itself,  invokes the  VMiX 
  3430.       debugger  shell.    The  debugger  shell 
  3431.       prompt is  '- __________'.   Once in the 
  3432.       debugger shell, all the debug sub-tokens 
  3433.       become first level tokens and you do not
  3434.       have  to  preceed  them  with  the token
  3435.       'debug' (refer to Chapter 3 for use).
  3436.  
  3437.            VMiX  accepts  numeric input in two
  3438.       forms, decimal or hexadecimal.  To enter
  3439.       hexadecimal numbers  preceede the number
  3440.       with the characters '0x'.
  3441.  
  3442.            To  return to the root  shell, from 
  3443.       the debugger use the token 'quit'.
  3444.  
  3445.       NOTE:  All eight debugger sub-tokens can
  3446.       be  used  from  the  root  shell  level,
  3447.       whether you precede them  with the token
  3448.       'debug',  or  not.   If  used  with  the
  3449.       prefix 'debug',  you  will  move  to the
  3450.       debugger shell when  the current command
  3451.       completes.  Without the prefix, you will
  3452.       remain at the root shell.
  3453.  
  3454.  
  3455.       Part II, The Root Shell        page 2-3
  3456.  
  3457.       C O M S O F T                   VMiX 286
  3458.  
  3459.  
  3460.  
  3461.       NAME: rshell
  3462.  
  3463.       OUTLINE:
  3464.  
  3465.       Purpose:  To start a new shell.
  3466.  
  3467.  
  3468.       DESCRIPTION:
  3469.  
  3470.  
  3471.  
  3472.  
  3473.  
  3474.  
  3475.  
  3476.  
  3477.  
  3478.  
  3479.  
  3480.  
  3481.  
  3482.  
  3483.  
  3484.  
  3485.  
  3486.  
  3487.  
  3488.  
  3489.  
  3490.  
  3491.  
  3492.  
  3493.  
  3494.  
  3495.  
  3496.  
  3497.  
  3498.  
  3499.  
  3500.  
  3501.  
  3502.  
  3503.       Part II, The Root Shell        page 2-4
  3504.  
  3505.       C O M S O F T                   VMiX 286
  3506.  
  3507.  
  3508.  
  3509.  
  3510.       NAME: remote
  3511.  
  3512.       OUTLINE:
  3513.  
  3514.         -c  " selects remote channel"
  3515.  
  3516.       Purpose:  To control your PC remotely
  3517.       via a modem or terminal connection.
  3518.  
  3519.  
  3520.       DESCRIPTION:
  3521.  
  3522.            The   root  shell  command 'remote'
  3523.       terminates VMiX, but first sets STDIO to
  3524.       use  the channel specified  after the -c
  3525.       switch.  Therefore, MSDOS resumes at the
  3526.       device associated with the channel.
  3527.  
  3528.            VMiX  Release 1.4X,  does not fully
  3529.       implement I/O redirection,  particularly
  3530.       to files.  So this token is only  useful
  3531.       to terminate  to  MSDOS level,  when the
  3532.       channel  requested is assigned to a COMM
  3533.       object  (serial  port)  connected  to  a
  3534.       terminal or  modem (NOTE: in VMiX terms,
  3535.       a  COMM object is called a  'SRCSINK', a
  3536.       device  that  is  a source  as well as a
  3537.       destination for characters).
  3538.  
  3539.            VMiX  provides two REMOTE commands.
  3540.       The single word command  remote  is only
  3541.       available  from  the  root  shell.   The
  3542.       debugger shell  has a different command,
  3543.       set remote (refer  to  Chapter 3).  The
  3544.       two commands behave differently.
  3545.  
  3546.  
  3547.  
  3548.  
  3549.  
  3550.  
  3551.       Part II, The Root Shell        page 2-5
  3552.  
  3553.       C O M S O F T                   VMiX 286
  3554.  
  3555.  
  3556.  
  3557.       From the root shell typing,
  3558.  
  3559.         remote -c1          (for COM1 remote)
  3560.         remote -c2          (for COM2 remote)
  3561.         remote -c3          (for COM3 remote)
  3562.         remote -c4          (for COM4 remote)
  3563.  
  3564.  
  3565.       Will:
  3566.         a) shutdown VMiX and logoff Root,
  3567.         b) return to DOS,
  3568.         c) set DOS's STDIO to COM1, COM2, COM3,
  3569.            or COM4 when DOS takes over.
  3570.  
  3571.       This  will allow you to run your PC from
  3572.       a terminal or via a  modem.   Note,  you
  3573.       should select a terminal type (using set
  3574.       terminal)  appropiate  for the equipment
  3575.       connected to your computer's COMM ports.
  3576.       A  popular  terminal  type  supported by
  3577.       VMiX is  VT-100  emulation,  since  many
  3578.       PC  communication programs  provide this
  3579.       type of emulation.
  3580.  
  3581.       The commands required to do this are:
  3582.  
  3583.         debug               (go to debugger)
  3584.         set terminal -t     (a valid terminal
  3585.                             type number can be
  3586.                             optionally entered
  3587.                             preceded by -t)
  3588.  
  3589.       In the example above,  VMiX will display
  3590.       a menu of terminals available.   In  the
  3591.       example   below,   VMiX  will  set   the
  3592.       terminal type to 4 (VT-100).
  3593.  
  3594.         set terminal -t4    (choose VT-100)
  3595.  
  3596.  
  3597.  
  3598.  
  3599.       Part II, The Root Shell        page 2-6
  3600.  
  3601.       C O M S O F T                   VMiX 286
  3602.  
  3603.  
  3604.  
  3605.  
  3606.       All this can be put in a .BAT  file,  to
  3607.       be  used  when  running  VMiX  for  this
  3608.       purpose.   If the terminal type is to be
  3609.       a VT-100 and the serial port in use will
  3610.       be COM1,  then the single line in a .BAT
  3611.       file would read:
  3612.  
  3613.       vm_boot set terminal -t2 / remote -c1
  3614.  
  3615.  
  3616.            While in REMOTE mode,  FUNCTION KEY
  3617.       emulation  is toggled  by  pressing  the
  3618.       <Ctrl> and <F> keys from the  terminal's
  3619.       keyboard.  Note that the digit (numbers)
  3620.       keys on the terminal's keyboard will now
  3621.       work  as  [F0] through [F9]  keys.   The
  3622.       [Ins], [Del], and [End] keys  can now be
  3623.       invoked  from  the  terminal by pressing
  3624.       ^I,  ^D,  and  ^E   respectively.    The
  3625.       terminal's  arrow  keys  and  [Home] key
  3626.       will simulate  these keys  on the IBM PC
  3627.       keyboard  and the terminal's <Shift> key
  3628.       will simulate the IBM PC's <Alt> key.
  3629.  
  3630.       Press  ^F  a  second time to  return  to
  3631.       numeric keys.
  3632.  
  3633.       Returning  control  to  the  CONSOLE  is
  3634.       accomplished by pressing <Ctrl> <Z> from
  3635.       the terminal, while in the  FUNCTION KEY
  3636.       mode.
  3637.  
  3638.  
  3639.  
  3640.  
  3641.  
  3642.  
  3643.  
  3644.  
  3645.  
  3646.  
  3647.       Part II, The Root Shell        page 2-7
  3648.  
  3649.       C O M S O F T                   VMiX 286
  3650.  
  3651.  
  3652.  
  3653.  
  3654.       NAME: swap
  3655.  
  3656.       OUTLINE:
  3657.  
  3658.       Purpose:  To swap a task.
  3659.  
  3660.  
  3661.       DESCRIPTION:
  3662.  
  3663.       The command syntax is:
  3664.  
  3665.            swap [ process id ]
  3666.  
  3667.  
  3668.            If  a process is  in low memory, it
  3669.       will be swapped to extended 80286 memory.
  3670.       If the process  is already swapped, then
  3671.       it will be moved back  to low memory and
  3672.       resume execution.
  3673.  
  3674.            Swapped processes will not normally
  3675.       execute,  and will  stay suspended until
  3676.       they  are swapped  again  to low memory.
  3677.       To allow  swapped tasks to also execute,
  3678.       (less frequently than  in-memory  tasks)
  3679.       use the debugger command set system -s.
  3680.  
  3681.  
  3682.  
  3683.  
  3684.  
  3685.  
  3686.  
  3687.  
  3688.  
  3689.  
  3690.  
  3691.  
  3692.  
  3693.  
  3694.  
  3695.       Part II, The Root Shell        page 2-8
  3696.  
  3697.       C O M S O F T                   VMiX 286
  3698.  
  3699.  
  3700.  
  3701.  
  3702.       NAME: chprio
  3703.  
  3704.       OUTLINE:
  3705.  
  3706.       Purpose:  To change the executing
  3707.       priority of a VMiX process.
  3708.  
  3709.  
  3710.       DESCRIPTION:
  3711.  
  3712.            All VMiX  processes start  with the
  3713.       default priority of 7. Priorities adjust
  3714.       constantly  in VMiX, within  the range 2
  3715.       through  the  assigned  base maximum for
  3716.       the process.  When you  use  chprio, you
  3717.       merely  set the  base  maximum  that the
  3718.       current priority of a process is allowed
  3719.       to float within.  VMiX  uses  this float
  3720.       range, for example, to 'up' the priority
  3721.       of a process, when the keyboard is used.
  3722.       Task switching, also adjusts the current
  3723.       priority. A process with a base priority
  3724.       of 14  will execute  twice  as  fast  as
  3725.       another at priority 7,  all other things
  3726.       being equal.  A process with  priority 1
  3727.       will not execute  at all.  It will sleep
  3728.       until you 'up' the priority above 1.
  3729.  
  3730.            VMiX priorities range  from  a high
  3731.       of  31  to a low  of 0.   The  scheduler
  3732.       always  chooses  the  process with   the
  3733.       highest  priority.  The scheduler  round
  3734.       robin's processes with the same priority.
  3735.  
  3736.            At the  expiration  of the  quantum
  3737.       for a process, when the current  process
  3738.       is preempted and the next  READY process
  3739.       is  activated,  the  previous   process'
  3740.  
  3741.  
  3742.  
  3743.       Part II, The Root Shell        page 2-9
  3744.  
  3745.       C O M S O F T                   VMiX 286
  3746.  
  3747.  
  3748.  
  3749.  
  3750.       priority is reduced.  On the other hand,
  3751.       the current priority of  any process  is
  3752.       increased when  I/O  for that process is
  3753.       received.  The  current  priority of any
  3754.       process never increases  above its  base
  3755.       priority,   nor drops below  SYS_EXEPRI.
  3756.       The configuration  value for  SYS_EXEPRI
  3757.       is 2.
  3758.  
  3759.            If  the  priority of a  process  is
  3760.       reduced below SYS_EXEPRI,  it remains in
  3761.       the  READY  to execute  state until  all
  3762.       processes  with normal  priorities  have
  3763.       terminated or become non-READY.
  3764.  
  3765.            The  token  'chprio'  is  used   to
  3766.       change  the base and current priority of
  3767.       any process to the new value requested.
  3768.  
  3769.       The command syntax is:
  3770.  
  3771.         chprio [ pid [ / priority ] ]
  3772.  
  3773.       where,  pid is  the  process id  of  the
  3774.       target   process,   and  priority  is  a
  3775.       priority value between 0 - 31.   If only
  3776.       chprio  is entered,  then the shell will
  3777.       prompt  for  the  two   arguments.   The
  3778.       default  pid,  if you only press <RETURN>,
  3779.       is the current process id.   The default
  3780.       priority  is the base  priority  of  the
  3781.       target process.
  3782.  
  3783.  
  3784.  
  3785.  
  3786.  
  3787.  
  3788.  
  3789.  
  3790.  
  3791.       Part II, The Root Shell        page 2-10
  3792.  
  3793.       C O M S O F T                   VMiX 286
  3794.  
  3795.  
  3796.  
  3797.  
  3798.       NAME: exec
  3799.  
  3800.       OUTLINE:
  3801.  
  3802.         -a  " adjusts transient program memory
  3803.               size: MCB(seg), nusize(para)"
  3804.         -m  " sets transient program memory
  3805.               partition size: (0 - 1024K)"
  3806.         -o  " sets transient program memory
  3807.               owner: MCB(seg), nuPSP(seg)"
  3808.  
  3809.       Purpose:  To execute a valid MSDOS file
  3810.       or command.
  3811.  
  3812.  
  3813.       DESCRIPTION:
  3814.  
  3815.            exec is a limited utility interface
  3816.       to MSDOS.   The 'exec' token can be used
  3817.       (with  no switches) to execute any MSDOS
  3818.       command string from  within a VMiX  root
  3819.       shell.   The main purpose  of exec is to
  3820.       execute an  MSDOS  file.     It  can  be
  3821.       invoked by itself or in conjunction with
  3822.       the spawn token.
  3823.        
  3824.       The command syntax is:
  3825.  
  3826.            exec [ MSDOS command ]
  3827.  
  3828.            The  utility  of exec for  invoking
  3829.       executable  images  from within  a  VMiX
  3830.       process is limited because exec uses the
  3831.       MSDOS  command.com  loader.   The  MSDOS
  3832.       loader  makes assumptions  about  memory
  3833.       allocation, which  do not  conform  to a
  3834.       multiuser environment like VMiX.
  3835.  
  3836.  
  3837.  
  3838.  
  3839.       Part II, The Root Shell        page 2-11
  3840.  
  3841.       C O M S O F T                   VMiX 286
  3842.  
  3843.  
  3844.  
  3845.  
  3846.            The use of exec  as a prefix to DOS
  3847.       commands  becomes  optional if the  user
  3848.       has  enabled  DOS shell  emulation  from 
  3849.       within the VMiX  debugger.   MSDOS shell
  3850.       emulation is toggled by the command:
  3851.  
  3852.            debug set dos -m
  3853.  
  3854.            Two or more VMiX processes  can use
  3855.       the   exec  command  to   access   MSDOS
  3856.       provided that:
  3857.  
  3858.       a)  All transient program memory has not
  3859.       been previously allocated (.COM programs
  3860.       will  do this,  as well as .EXE  program
  3861.       which have not been modified with exemod,
  3862.       an MSDOS utility program). The -m switch
  3863.       can  be  used with  exec to  control the
  3864.       amount  of  memory  that  .COM  or  .EXE
  3865.       programs can grab.
  3866.  
  3867.       The command syntax is:
  3868.  
  3869.            exec -m [ max. K bytes ]
  3870.  
  3871.       where,  the  maximum  number of K  bytes
  3872.       specified  limits the amount  of  memory
  3873.       that a program  can allocate as its own.
  3874.       For  example,   exec  -m128<RETURN>,  will
  3875.       limit  programs  to  a  maximum  of 128K
  3876.       bytes.
  3877.  
  3878.  
  3879.  
  3880.  
  3881.  
  3882.  
  3883.  
  3884.  
  3885.  
  3886.  
  3887.       Part II, The Root Shell        page 2-12
  3888.  
  3889.       C O M S O F T                   VMiX 286
  3890.  
  3891.  
  3892.  
  3893.  
  3894.       b)  MSDOS  is  not busy  with  a  nested
  3895.       function  call  beyond the initial  exec
  3896.       call from VMiX.  If another VMiX process
  3897.       has  also  invoked MSDOS  services  that
  3898.       have not completed,  then VMiX will wait
  3899.       for  MSDOS  to say that  it  can  handle
  3900.       another  request.   The user waiting for
  3901.       MSDOS  access can determine the  process
  3902.       currently  using  (and  not   releasing)
  3903.       MSDOS  by  examining the VMiX  parameter
  3904.       'doslevel'  from the VMiX debugger  with
  3905.       the command examine process.
  3906.  
  3907.            The -a switch is provided with  the
  3908.       'exec' command, to allow for the release
  3909.       of memory previously allocated by MSDOS.
  3910.       This can be a dangerous option.  To help
  3911.       in  determining  the arguments for  this
  3912.       switch,   use   the   debugger   shell's
  3913.       examine token.  The  debugger shell will
  3914.       list  the  MSDOS  memory  control blocks
  3915.       with  the  command   examine  mcb.  This
  3916.       command  will  list the  segment address
  3917.       of each MCB  and the size of each memory
  3918.       block, in 16 byte paragraphs.   
  3919.  
  3920.       The command syntax is:
  3921.  
  3922.         exec -a [ MCB address [ / nusize ] ]
  3923.  
  3924.       where,  the  segment address of the  MCB
  3925.       has  been  obtained using  the  debugger
  3926.       shell,  and  nusize is the new requested
  3927.       size in paragraphs for the  block.   The
  3928.       parameters    can    be    entered    in
  3929.       hexadecimal,  using  the  format  0x????
  3930.       (example, exec -a 0x26F0 0xAF8).
  3931.  
  3932.  
  3933.  
  3934.  
  3935.       Part II, The Root Shell        page 2-13
  3936.  
  3937.       C O M S O F T                   VMiX 286
  3938.  
  3939.  
  3940.  
  3941.  
  3942.            The -o switch is provided with  the
  3943.       'exec' command, to  allow for the change
  3944.       of  ownership   of   memory   previously
  3945.       allocated by MSDOS.  Some programs (like
  3946.       to allocate  all available memory.  This
  3947.       is indicated by an  'end' MCB block that
  3948.       has been assigned the PSP segment of the
  3949.       program, as its owner.
  3950.  
  3951.            Normally,   the   'end'  MCB  holds
  3952.       available  memory and has a NULL PSP (0)
  3953.       for its owner  (use  exam mcb  from  the
  3954.       debugger  shell  to examine  the  memory
  3955.       chain).  You should next use the utility
  3956.       monitor  to determine  that the program
  3957.       has  not  allocated  stack space  in the
  3958.       area  covered  by the  'end' MCB.  After
  3959.       this is verified, it will be safe to use
  3960.       the  -o  switch  and  recover  the 'end'
  3961.       memory.  To free the memory, set the PSP
  3962.       owner  to  0000.    Sometimes,  a better 
  3963.       solution  is to deallocate  some  of the
  3964.       memory  with the  -a switch,  since  the
  3965.       process owner could be using some of the
  3966.       'end' MCB memory. 
  3967.  
  3968.       The command syntax is:
  3969.  
  3970.         exec -o [ MCB address [ / nuPSP ] ]
  3971.  
  3972.       where,  the  segment address  of the MCB
  3973.       has been  obtained using  the  debugger,
  3974.       and  nuPSP  is the new PSP that will own
  3975.       the memory block.  The parameters can be
  3976.       entered in hexadecimal, using the format
  3977.       0x????   (example,  exec -o 0x65F0 0).
  3978.  
  3979.  
  3980.  
  3981.  
  3982.  
  3983.       Part II, The Root Shell        page 2-14
  3984.  
  3985.       C O M S O F T                   VMiX 286
  3986.  
  3987.  
  3988.  
  3989.  
  3990.       NAME: dosjob
  3991.  
  3992.       OUTLINE:
  3993.  
  3994.         -W  " gives process the full screen"
  3995.  
  3996.       Purpose:   To  execute   a  valid  MSDOS
  3997.       command,  and/or  a series of VMiX shell
  3998.       commands, within an automatic window.
  3999.  
  4000.  
  4001.       DESCRIPTION:
  4002.  
  4003.            dosjob spawns  a child process that
  4004.       executes  a  string  of  commands, input
  4005.       immediately  following, and on  the same
  4006.       line as the 'dosjob' token.
  4007.  
  4008.            dosjob,  like 'exec',  provides  an
  4009.       interface to MSDOS.   The 'dosjob' token
  4010.       is used with no switches  to execute any
  4011.       MSDOS  command string  from within a new
  4012.       VMiX  multitasking  process.    The main
  4013.       purpose of dosjob is to execute an MSDOS
  4014.       file or command.  It can also be invoked
  4015.       in conjunction with VMiX shell commands.
  4016.       For  example,  a  dosjob,   can  include
  4017.       another 'dosjob' command  in  its  input
  4018.       string.
  4019.  
  4020.            The difference between 'dosjob' and
  4021.       'exec', is twofold.  dosjob will start a
  4022.       new  process  to execute  the job, while
  4023.       exec   will  use  the  current  process.
  4024.       Second, dosjob,  (without the -W option)
  4025.       will open  a new window for the process,
  4026.       while  exec will  use the bounds  of the
  4027.       current shell process.
  4028.  
  4029.  
  4030.  
  4031.       Part II, The Root Shell        page 2-15
  4032.  
  4033.       C O M S O F T                   VMiX 286
  4034.  
  4035.  
  4036.  
  4037.  
  4038.       The command syntax is:
  4039.  
  4040.           dosjob [-W] [ MSDOS command ]
  4041.                  [ / [ command ] /... ]
  4042.  
  4043.  
  4044.       NOTE:  'dosjob' essentially  performs  a
  4045.       new  SRCSINK channel  'assign', followed
  4046.       by a  'set video -W' and a  'spawn' of a
  4047.       new child  process, to execute the input
  4048.       command string.
  4049.  
  4050.  
  4051.  
  4052.  
  4053.  
  4054.  
  4055.  
  4056.  
  4057.  
  4058.  
  4059.  
  4060.  
  4061.  
  4062.  
  4063.  
  4064.  
  4065.  
  4066.  
  4067.  
  4068.  
  4069.  
  4070.  
  4071.  
  4072.  
  4073.  
  4074.  
  4075.  
  4076.  
  4077.  
  4078.  
  4079.       Part II, The Root Shell        page 2-16
  4080.  
  4081.       C O M S O F T                   VMiX 286
  4082.  
  4083.  
  4084.  
  4085.  
  4086.       NAME: spawn
  4087.  
  4088.       OUTLINE:
  4089.  
  4090.         -c  " sets spawn I/O channel and shell
  4091.               script"
  4092.  
  4093.       Purpose:   To dispatch a background task
  4094.       to be performed  independently and  con-
  4095.       currently with everything else.
  4096.  
  4097.  
  4098.       DESCRIPTION:
  4099.  
  4100.            spawn creates a new child  process,
  4101.       owned   by  the  invoking  shell.    The
  4102.       channel  specified immediately after the
  4103.       -c switch becomes the STDIO channel  for
  4104.       the  new  process.   After  the  channel
  4105.       number, a script of VMiX shell  commands
  4106.       can  be entered.   Multiple commands are
  4107.       input,   separated   by  a  valid   VMiX
  4108.       delimiter ('/' ',' tab or space).
  4109.  
  4110.       The command syntax is:
  4111.  
  4112.            spawn -c???? [ [ command ] /... ]
  4113.  
  4114.            A way  to implement  EMAIL  in your
  4115.       system, is to have  a user spawn an exec
  4116.       job to somebody elses channel, where the
  4117.       'exec' merely types a newly created text
  4118.       message file:
  4119.  
  4120.       spawn -c1 / exec type b:\news\myfile.txt
  4121.  
  4122.  
  4123.  
  4124.  
  4125.  
  4126.  
  4127.       Part II, The Root Shell        page 2-17
  4128.  
  4129.       C O M S O F T                   VMiX 286
  4130.  
  4131.  
  4132.  
  4133.            A  more elegant way is to assign  a
  4134.       new channel  to the device COM1 or COM2,
  4135.       so that we can create a  window  without
  4136.       disturbing  the  user too  much.   If  a
  4137.       window  is  created  on the  user's  own
  4138.       channel, then we have modified his envi-
  4139.       ronment from our side; that is bad.
  4140.  
  4141.            By  using  exec dstat -a,   we  can
  4142.       determine  the port # to talk  with  our
  4143.       target  user.  In VMiX,  ports refers to
  4144.       physical  devices,   and  channels   are
  4145.       logical   circuits  to  those   devices.
  4146.       Assume  we  determined that he is  using
  4147.       COM1.  From the debugger shell, we first
  4148.       enable  messages,  to see  what  channel
  4149.       number   VMiX  will  allocate  for   our
  4150.       'assign':
  4151.  
  4152.         set system -m    (enable manager msgs)  
  4153.  
  4154.       then we grab a channel,
  4155.  
  4156.         assign srcsink 1     (the 1 requests
  4157.                               COM1, if you
  4158.                               prefer to be
  4159.                               prompted, just
  4160.                               type 'assign')
  4161.  
  4162.       lets  say  that  we were  informed  that 
  4163.       channel 3 was assigned, then:
  4164.  
  4165.         quit            (to exit the debugger)
  4166.  
  4167.       now we 'spawn' to channel 3,
  4168.  
  4169.         spawn -c3 / set video -w1 40 10 79 / 
  4170.                   exec type b:\news\myfile.txt
  4171.  
  4172.  
  4173.  
  4174.  
  4175.       Part II, The Root Shell        page 2-18
  4176.  
  4177.       C O M S O F T                   VMiX 286
  4178.  
  4179.  
  4180.  
  4181.  
  4182.       This  created  a  10 x 40   window  (via
  4183.       channel  3)  at  the top  right  of  his
  4184.       display.   The command  set video -W can
  4185.       also  be  used,  in place  of our manual
  4186.       'set video -w....' in the example above.
  4187.       A  better EMAIL system could be  written
  4188.       using the VMiX System Services listed in
  4189.       sysgate.asm, just like ps.c  and dstat.c
  4190.       were written. 
  4191.  
  4192.  
  4193.  
  4194.  
  4195.  
  4196.  
  4197.  
  4198.  
  4199.  
  4200.  
  4201.  
  4202.  
  4203.  
  4204.  
  4205.  
  4206.  
  4207.  
  4208.  
  4209.  
  4210.  
  4211.  
  4212.  
  4213.  
  4214.  
  4215.  
  4216.  
  4217.  
  4218.  
  4219.  
  4220.  
  4221.  
  4222.  
  4223.       Part II, The Root Shell        page 2-19
  4224.  
  4225.       C O M S O F T                   VMiX 286
  4226.  
  4227.  
  4228.  
  4229.  
  4230.       NAME: kill
  4231.  
  4232.       OUTLINE:
  4233.  
  4234.       Purpose:   To terminate the execution of
  4235.       an  image from a process other than  the
  4236.       owner.   If the target process shell  is
  4237.       not executing an image, then the process
  4238.       is terminated.
  4239.  
  4240.  
  4241.       DESCRIPTION:
  4242.  
  4243.            kill  allows a hard terminate of  a
  4244.       process  or  image to be commanded  from
  4245.       another process.   This command has  two
  4246.       levels of action.  If the target process
  4247.       shell is executing an image started by a
  4248.       previous  exec call,  then that image is
  4249.       terminated  via an MSDOS INT 20h  system
  4250.       call.   If  no  'exec'  image  is  being
  4251.       executed then 'kill' will terminate  the
  4252.       target process.
  4253.  
  4254.       The command syntax is:
  4255.  
  4256.            kill [ process id ]
  4257.  
  4258.       The utility ps.exe,  executed with exec,
  4259.       will  list  all active  (pid's)  process
  4260.       id's.
  4261.  
  4262.       SECURITY:  The kill command will not let
  4263.       a user terminate another user's process.
  4264.       Only  root or the su  superuser  has the
  4265.       access  priviledge to terminate all/any.
  4266.       A  regular user  can  only terminate his
  4267.       own spawned processes.
  4268.  
  4269.  
  4270.  
  4271.       Part II, The Root Shell        page 2-20
  4272.  
  4273.       C O M S O F T                   VMiX 286
  4274.  
  4275.  
  4276.  
  4277.       NOTE:  To be informed, on the screen, of
  4278.       the pid assigned by a 'spawn',  use  the
  4279.       debugger shell command set system -m  to
  4280.       enable  object manager messages,  before
  4281.       the spawn of a new background job.
  4282.  
  4283.  
  4284.  
  4285.  
  4286.  
  4287.  
  4288.  
  4289.  
  4290.  
  4291.  
  4292.  
  4293.  
  4294.  
  4295.  
  4296.  
  4297.  
  4298.  
  4299.  
  4300.  
  4301.  
  4302.  
  4303.  
  4304.  
  4305.  
  4306.  
  4307.  
  4308.  
  4309.  
  4310.  
  4311.  
  4312.  
  4313.  
  4314.  
  4315.  
  4316.  
  4317.  
  4318.  
  4319.       Part II, The Root Shell        page 2-21
  4320.  
  4321.       C O M S O F T                   VMiX 286
  4322.  
  4323.  
  4324.  
  4325.  
  4326.       NAME: quit
  4327.  
  4328.       OUTLINE:
  4329.  
  4330.       Purpose:  To terminate the shell and
  4331.       exit.
  4332.  
  4333.  
  4334.       DESCRIPTION:
  4335.  
  4336.            quit  decrements a process's  shell
  4337.       level  (number of nested shells)  by one
  4338.       and  returns  to the previous  shell, if
  4339.       any. The root shell is VMiX's top shell,
  4340.       so when terminated  by a process without
  4341.       root  privilege,  the  process is ended.
  4342.       Normally, the  first process started  at
  4343.       the console has root privilege.   If the
  4344.       process has  root privilege,  then  VMiX
  4345.       is also terminated.
  4346.  
  4347.  
  4348.  
  4349.  
  4350.  
  4351.  
  4352.  
  4353.  
  4354.  
  4355.  
  4356.  
  4357.  
  4358.  
  4359.  
  4360.  
  4361.  
  4362.  
  4363.  
  4364.  
  4365.  
  4366.  
  4367.       Part II, The Root Shell        page 2-22
  4368.  
  4369.  
  4370.  
  4371.  
  4372.  
  4373.  
  4374.  
  4375.  
  4376.  
  4377.  
  4378.                     PART TWO
  4379.  
  4380.  
  4381.                     VMiX 286
  4382.  
  4383.  
  4384.  
  4385.  
  4386.  
  4387.  
  4388.  
  4389.  
  4390.                     CHAPTER 3
  4391.  
  4392.  
  4393.                THE DEBUGGER SHELL
  4394.  
  4395.  
  4396.  
  4397.  
  4398.  
  4399.  
  4400.  
  4401.  
  4402.  
  4403.  
  4404.  
  4405.  
  4406.  
  4407.  
  4408.  
  4409.  
  4410.  
  4411.  
  4412.  
  4413.  
  4414.  
  4415.       Part II, The Debugger Shell    page 3-1
  4416.  
  4417.  
  4418.  
  4419.  
  4420.  
  4421.  
  4422.  
  4423.  
  4424.  
  4425.  
  4426.  
  4427.  
  4428.  
  4429.  
  4430.  
  4431.  
  4432.  
  4433.  
  4434.  
  4435.  
  4436.  
  4437.  
  4438.  
  4439.  
  4440.  
  4441.  
  4442.  
  4443.  
  4444.  
  4445.  
  4446.  
  4447.  
  4448.  
  4449.  
  4450.  
  4451.  
  4452.  
  4453.  
  4454.  
  4455.  
  4456.  
  4457.  
  4458.  
  4459.  
  4460.  
  4461.  
  4462.  
  4463.       Part II, The Debugger Shell    page 3-2
  4464.  
  4465.       C O M S O F T                   VMiX 286
  4466.  
  4467.  
  4468.  
  4469.  
  4470.       NAME: read
  4471.  
  4472.       OUTLINE:
  4473.  
  4474.  
  4475.       DESCRIPTION:
  4476.  
  4477.            read  is  not  implemented  in  VMiX
  4478.       Release 1.4X; a dummy 'read' is performed
  4479.       by this token.
  4480.  
  4481.  
  4482.  
  4483.  
  4484.  
  4485.  
  4486.  
  4487.  
  4488.  
  4489.  
  4490.  
  4491.  
  4492.  
  4493.  
  4494.  
  4495.  
  4496.  
  4497.  
  4498.  
  4499.  
  4500.  
  4501.  
  4502.  
  4503.  
  4504.  
  4505.  
  4506.  
  4507.  
  4508.  
  4509.  
  4510.  
  4511.       Part II, The Debugger Shell    page 3-3
  4512.  
  4513.       C O M S O F T                   VMiX 286
  4514.  
  4515.  
  4516.  
  4517.  
  4518.       NAME: write
  4519.  
  4520.       OUTLINE:
  4521.  
  4522.  
  4523.       DESCRIPTION:
  4524.  
  4525.            write  is not implemented  in  VMiX
  4526.       Release   1.4X;   a   dummy  'write'  is
  4527.       performed by this token.
  4528.  
  4529.  
  4530.  
  4531.  
  4532.  
  4533.  
  4534.  
  4535.  
  4536.  
  4537.  
  4538.  
  4539.  
  4540.  
  4541.  
  4542.  
  4543.  
  4544.  
  4545.  
  4546.  
  4547.  
  4548.  
  4549.  
  4550.  
  4551.  
  4552.  
  4553.  
  4554.  
  4555.  
  4556.  
  4557.  
  4558.  
  4559.       Part II, The Debugger Shell    page 3-4
  4560.  
  4561.       C O M S O F T                   VMiX 286
  4562.  
  4563.  
  4564.  
  4565.  
  4566.       NAME: assign
  4567.  
  4568.       OUTLINE:
  4569.  
  4570.            assign allocates a VMiX  channel to
  4571.       an  owner uid and assigns a VMiX  object
  4572.       to the channel.
  4573.  
  4574.            assign allocates extended memory.
  4575.  
  4576.            assign  gdt  allocates a  VMiX  286
  4577.       global descriptor table entry, returning
  4578.       a  new segment selector for either  code
  4579.       or data.
  4580.  
  4581.  
  4582.       DESCRIPTION:
  4583.  
  4584.       The command syntax is:
  4585.  
  4586.         assign [ uid [ / objname ]
  4587.                      [ / objdata ] ]
  4588.  
  4589.       where, uid is the identification  of the
  4590.       new  owner for the channel.   Note:   if
  4591.       the  owner is going to be a process  the
  4592.       pid  is  equivalent to the  uid  of  the
  4593.       process.
  4594.  
  4595.  
  4596.  
  4597.  
  4598.  
  4599.  
  4600.  
  4601.  
  4602.  
  4603.  
  4604.  
  4605.  
  4606.  
  4607.       Part II, The Debugger Shell    page 3-5
  4608.  
  4609.       C O M S O F T                   VMiX 286
  4610.  
  4611.  
  4612.  
  4613.  
  4614.       The objname is one of:
  4615.  
  4616.       Object type name definitions
  4617.  
  4618.            PROCESS  type proc is a process
  4619.            SRCSINK  type tty is a terminal
  4620.            CHRSINK  type prn is a printer
  4621.            DSKFILE  type df is a file
  4622.            MEMORY   type mf is a memory block
  4623.            BLKSINK  type dsk is a disk drive
  4624.            MANAGER  type sys is an obj manager
  4625.            MAILBOX  type mbox is a mailbox
  4626.            DATLINK  type dlc is a data link
  4627.  
  4628.  
  4629.  
  4630.       The objdata,  in the  case of a  SRCSINK
  4631.       type object, is one of:
  4632.  
  4633.       SRCSINK object id's
  4634.  
  4635.            0 = The Root Console
  4636.            1 = COM1:
  4637.            2 = COM2:
  4638.            3 = COM3:
  4639.            4 = COM4:
  4640.  
  4641.       If the  object is a process',the objdata
  4642.       is  the pid of the target process.   For
  4643.       all other  object types,  except MEMORY,
  4644.       the  objdata  is always  the uid  of the
  4645.       target  object  for  the  channel.   The
  4646.       utility  dstat.exe, executed with  exec,
  4647.       will list all VMiX objects.
  4648.  
  4649.  
  4650.  
  4651.  
  4652.  
  4653.  
  4654.  
  4655.       Part II, The Debugger Shell    page 3-6
  4656.  
  4657.       C O M S O F T                   VMiX 286
  4658.  
  4659.  
  4660.  
  4661.  
  4662.       The objdata,  in the  case  of a  MEMORY
  4663.       type object, is  the size,  in bytes  of
  4664.       the object to assign.  The size  will be
  4665.       rounded-up  to  the nearest  64k  block.
  4666.       Only extended memory can be allocated by
  4667.       this command.
  4668.  
  4669.       The extended memory pages  can be listed
  4670.       with the VMiX utility monitor.exe -p.
  4671.  
  4672.  
  4673.       NOTE:  To be informed, on the screen, of
  4674.       the  channel  assigned by this  command,
  4675.       use the debugger  command  set system -m
  4676.       to  enable   channel  manager  messages,
  4677.       before the assign.
  4678.  
  4679.       NOTE:  When  assigning  a channel  to  a
  4680.       SRCSINK  that  is going to be  used  for
  4681.       logins, the uid identifing the new owner
  4682.       of  the  channel must be set  to  0,  to
  4683.       indicate the uid of the scheduler,
  4684.       (example, assign 0 srcsink 1).
  4685.  
  4686.  
  4687.  
  4688.  
  4689.  
  4690.  
  4691.  
  4692.  
  4693.  
  4694.  
  4695.  
  4696.  
  4697.  
  4698.  
  4699.  
  4700.  
  4701.  
  4702.  
  4703.       Part II, The Debugger Shell    page 3-7
  4704.  
  4705.       C O M S O F T                   VMiX 286
  4706.  
  4707.  
  4708.  
  4709.  
  4710.       The command syntax is:
  4711.  
  4712.         assign gdt [ access [ / size ]
  4713.                             [ / segment ] ]
  4714.  
  4715.       where, access  is usually entered as the
  4716.       word 'code',  if  the segment is  a code
  4717.       segment  or  as the word 'data',  if the
  4718.       access byte  of the gdt descriptor is to
  4719.       be  set to data segment  access  rights.
  4720.       The  user  can also enter a  decimal  or
  4721.       hexadecimal  value,   if  he  wishes  to
  4722.       override the default access rights value
  4723.       that VMiX uses for its segments.
  4724.  
  4725.       The   parameters  can  be   entered   in
  4726.       hexadecimal,  using  the  format  0x????
  4727.       (example,  assign gdt 0x9B 10 0xF000
  4728.             or   assign gdt code 10 0xF000).
  4729.  
  4730.       size is the  size that the segment is to
  4731.       have, specified  as the number of pages.
  4732.       A VMiX page is 512 bytes long.
  4733.  
  4734.       segment  is   the  segment   address  in
  4735.       physical memory that the selector is  to
  4736.       translate to, when loaded onto a segment
  4737.       register.
  4738.  
  4739.       NOTE:  To be informed, on the screen, of
  4740.       the   gdt  selector  assigned  by   this
  4741.       command,  use the debugger shell command
  4742.       set system -m  to enable  memory manager
  4743.       messages,  before the  assign gdt.   The
  4744.       manager always returns a far pointer, so
  4745.       the  selector is really only  the  first
  4746.       word  of the block address displayed  by
  4747.       the manager. 
  4748.  
  4749.  
  4750.  
  4751.       Part II, The Debugger Shell    page 3-8
  4752.  
  4753.       C O M S O F T                   VMiX 286
  4754.  
  4755.  
  4756.  
  4757.  
  4758.       NAME: deassign
  4759.  
  4760.       OUTLINE:
  4761.  
  4762.            deassign deallocates a VMiX channel.
  4763.  
  4764.            deassign gdt deallocates a VMiX gdt
  4765.       selector.
  4766.  
  4767.            deassign memory  deallocates a VMiX
  4768.       extended memory block.
  4769.  
  4770.  
  4771.       DESCRIPTION:
  4772.  
  4773.       The command syntax is:
  4774.  
  4775.         deassign [ channel ]
  4776.  
  4777.       where,  channel  specifies  the  channel
  4778.       number  to  deassign.   This  can  be  a
  4779.       dangerous  command  to  execute,   since
  4780.       STDIO  to  the root console (channel  0)
  4781.       could   be  deassigned,   freezing   the
  4782.       console.   If no other shell is running,
  4783.       there  is no way to assign the STDIO  to
  4784.       the root console again.
  4785.  
  4786.       NOTE:  To be informed, on the screen, of
  4787.       the channel and IO Request Packets (IRP)
  4788.       deassigned  by  this  command,  use  the
  4789.       debugger shell command set system -m  to
  4790.       enable channel manager messages,  before
  4791.       the deassign.
  4792.  
  4793.  
  4794.  
  4795.  
  4796.  
  4797.  
  4798.  
  4799.       Part II, The Debugger Shell    page 3-9
  4800.  
  4801.       C O M S O F T                   VMiX 286
  4802.  
  4803.  
  4804.  
  4805.  
  4806.       The command syntax is:
  4807.  
  4808.         deassign gdt [ selector ]
  4809.  
  4810.       where,  selector   is  the gdt  selector
  4811.       returned by an assign gdt.
  4812.  
  4813.       NOTE:  To be informed, on the screen, of
  4814.       the  gdt  selector  deassigned  by  this
  4815.       command,  use the debugger shell command
  4816.       set system -m  to enable  memory manager
  4817.       messages,  before the deassign gdt.  The
  4818.       manager always returns a far pointer, so
  4819.       the  selector  is really only the  first
  4820.       word  of the block address displayed  by
  4821.       the manager. 
  4822.  
  4823.  
  4824.  
  4825.       The command syntax is:
  4826.  
  4827.         deassign memory [ page ]
  4828.  
  4829.       where, page is  the extended memory page
  4830.       to return to the free memory pool.   The  
  4831.       memory  was previously assigned with the
  4832.       assign command.
  4833.  
  4834.       The extended memory pages  can be listed
  4835.       with the VMiX utility monitor.exe -p.
  4836.  
  4837.  
  4838.  
  4839.  
  4840.  
  4841.  
  4842.  
  4843.  
  4844.  
  4845.  
  4846.  
  4847.       Part II, The Debugger Shell    page 3-10
  4848.  
  4849.       C O M S O F T                   VMiX 286
  4850.  
  4851.  
  4852.  
  4853.  
  4854.       NAME: init
  4855.  
  4856.       OUTLINE:
  4857.  
  4858.       comm
  4859.         -c  " sets communications:
  4860.               chan, baud, parity, word, stop"
  4861.  
  4862.  
  4863.       DESCRIPTION:
  4864.  
  4865.       (See set baud.)
  4866.  
  4867.  
  4868.  
  4869.  
  4870.  
  4871.  
  4872.  
  4873.  
  4874.  
  4875.  
  4876.  
  4877.  
  4878.  
  4879.  
  4880.  
  4881.  
  4882.  
  4883.  
  4884.  
  4885.  
  4886.  
  4887.  
  4888.  
  4889.  
  4890.  
  4891.  
  4892.  
  4893.  
  4894.  
  4895.       Part II, The Debugger Shell    page 3-11
  4896.  
  4897.       C O M S O F T                   VMiX 286
  4898.  
  4899.  
  4900.  
  4901.  
  4902.       NAME: examine
  4903.  
  4904.       OUTLINE:
  4905.  
  4906.       memory   " displays memory graphically,
  4907.                  in 1K blocks"
  4908.  
  4909.       mcb      " displays information on the 
  4910.                  MSDOS memory control blocks"
  4911.  
  4912.       kernel  " displays information on the 
  4913.                  VMiX kernel"
  4914.  
  4915.  
  4916.       DESCRIPTION:
  4917.  
  4918.       examine memory
  4919.  
  4920.            This command displays  a map of the
  4921.       first one megabyte of memory space.  The 
  4922.       screen   displays   memory   in   blocks 
  4923.       representing  1024 (1K) bytes.   If  the 
  4924.       block is in use by the system,  then  it 
  4925.       is  marked  by  a '$' or a  solid  black 
  4926.       block,  in graphics mode.   If the block 
  4927.       is in use by VMiX,  then it is marked by 
  4928.       a  'V' or a gray shaded  block.   Memory 
  4929.       control  blocks are distinguished by  an 
  4930.       '='  or a small solid black  block  with 
  4931.       border,  in graphics mode. Memory not in 
  4932.       use  is  indicated by an '.' or a  small 
  4933.       solid white block with border.
  4934.  
  4935.  
  4936.  
  4937.  
  4938.  
  4939.  
  4940.  
  4941.  
  4942.  
  4943.       Part II, The Debugger Shell    page 3-12
  4944.  
  4945.       C O M S O F T                   VMiX 286
  4946.  
  4947.  
  4948.  
  4949.  
  4950.       NAME: set
  4951.  
  4952.       OUTLINE:
  4953.  
  4954.       baud
  4955.         -c  " sets communications:
  4956.               chan, baud, parity, word, stop"
  4957.  
  4958.       dos
  4959.         -m  " toggles DOS shell emulation mode
  4960.               ON/OFF"
  4961.         -n  " sets DOS INT21 function maximum
  4962.               nesting level"
  4963.         -p  " sets DOS current process PSP:
  4964.               nuPSP(seg)"
  4965.  
  4966.       font
  4967.         -t  " sets font type: (0 - 3)"
  4968.  
  4969.       pool
  4970.         -a  " adjusts transient program memory:
  4971.               MCB(seg), nusize(para)"
  4972.         -m  " sets transient program memory
  4973.               partition size: (0 - 1024K)"
  4974.         -o  " sets transient program memory owner:
  4975.               MCB(seg), nuPSP(seg)"
  4976.  
  4977.       process
  4978.         -b  " sets process shell buffer
  4979.               size: (0 - 127)"
  4980.         -e  " toggles system environment
  4981.               protection ON/OFF"
  4982.         -h  " toggles process hardware
  4983.               priviledge ON/OFF"
  4984.         -p  " sets process priority: (0 - 31)"
  4985.  
  4986.  
  4987.  
  4988.  
  4989.  
  4990.  
  4991.       Part II, The Debugger Shell    page 3-13
  4992.  
  4993.       C O M S O F T                   VMiX 286
  4994.  
  4995.  
  4996.  
  4997.  
  4998.       remote
  4999.         -c  " selects remote channel"
  5000.         -l  " sets polled terminal login channel"
  5001.  
  5002.       system
  5003.         -m  " toggles manager message displays
  5004.               ON/OFF"
  5005.         -s  " toggles scheduler swapped task
  5006.               processing ON/OFF"
  5007.         -t  " toggles scheduler clock processing
  5008.               ON/OFF"
  5009.         -w  " sets shutdown wait delay: seconds"
  5010.  
  5011.       terminal
  5012.         -t  " sets terminal type: (0 - 9)"
  5013.  
  5014.       video
  5015.         -c  " sets video background/foreground
  5016.               color"
  5017.         -C  " sets window color attribute"
  5018.         -m  " sets video mode (0 - 16)"
  5019.         -s  " toggles status line display ON/OFF"
  5020.         -w  " sets root window size:
  5021.               y0, x0, y1, x1"
  5022.         -W  " auto partitions (1 - 4) task windows
  5023.               (Shift-Tab toggles kbd)"
  5024.  
  5025.  
  5026.  
  5027.  
  5028.  
  5029.  
  5030.  
  5031.  
  5032.  
  5033.  
  5034.  
  5035.  
  5036.  
  5037.  
  5038.  
  5039.       Part II, The Debugger Shell    page 3-14
  5040.  
  5041.       C O M S O F T                   VMiX 286
  5042.  
  5043.  
  5044.  
  5045.  
  5046.       DESCRIPTION:
  5047.  
  5048.  
  5049.       set pool
  5050.  
  5051.         -a  " adjusts transient program memory:
  5052.               MCB(seg), nusize(para)"
  5053.         -m  " sets transient program memory
  5054.               partition size: (0 - 1024K)"
  5055.         -o  " sets transient program memory owner:
  5056.               MCB(seg), nuPSP(seg)"
  5057.  
  5058.            The   -m  switch  can  be  used  to
  5059.       control  the amount  of  memory  .COM or
  5060.       .EXE programs can grab, without the need
  5061.       to use exemod.exe, an MSDOS utility,  to
  5062.       modify the headers of .EXE programs.
  5063.  
  5064.       The command syntax is:
  5065.  
  5066.        set pool -m [ max. K bytes ]
  5067.  
  5068.       where,  the  maximum  number of K  bytes
  5069.       specified  limits the amount  of  memory
  5070.       that a program can allocate as its  own.
  5071.       For example,  set pool -m128<RETURN>, will
  5072.       limit all programs  loaded thereafter to
  5073.       a maximum of 128K bytes.
  5074.  
  5075.  
  5076.  
  5077.  
  5078.  
  5079.  
  5080.  
  5081.  
  5082.  
  5083.  
  5084.  
  5085.  
  5086.  
  5087.       Part II, The Debugger Shell    page 3-15
  5088.  
  5089.       C O M S O F T                   VMiX 286
  5090.  
  5091.  
  5092.  
  5093.  
  5094.            The -a switch is provided with  the
  5095.       'set  pool'  command,  to allow for  the
  5096.       release  of memory previously  allocated
  5097.       by  MSDOS or to increase the size of  an
  5098.       MSDOS memory control block.  This option
  5099.       can also be used to increase or decrease
  5100.       a VMiX memory control block,  and  hence
  5101.       the  number  of pages of memory  in  the
  5102.       paged  memory  pool.     The  function's
  5103.       performance   depends  on  whether   the
  5104.       segement address passed is for an  MSDOS
  5105.       MCB,  or a VMiX MCB.  In the later case,
  5106.       the paged memory pool is affected.  This
  5107.       can  be a dangerous option.  To help  in
  5108.       determining   the  arguments  for   this
  5109.       switch,   use   the   debugger   shell's
  5110.       'examine'  token.   The  debugger  shell
  5111.       will  list  the  MSDOS  memory   control
  5112.       blocks  with  the  command  examine mcb.
  5113.       This   command  will  list  the  segment
  5114.       address of each MCB and their size in 16
  5115.       byte paragraphs.
  5116.  
  5117.       The command syntax is:
  5118.  
  5119.         set pool -a [ MCB address
  5120.                       [ / nusize ] ]
  5121.  
  5122.       where,  the  segment address of the  MCB
  5123.       has  been  obtained using  the  debugger
  5124.       shell,  and  nusize is the new requested
  5125.       size in paragraphs for the  block.   The
  5126.       parameters    can    be    entered    in
  5127.       hexadecimal,  using  the  format  0x????
  5128.       (example, set pool -a 0x26F0 0xAF8).
  5129.  
  5130.  
  5131.  
  5132.  
  5133.  
  5134.  
  5135.       Part II, The Debugger Shell    page 3-16
  5136.  
  5137.       C O M S O F T                   VMiX 286
  5138.  
  5139.  
  5140.  
  5141.            The -o switch is provided with  the
  5142.       'set  pool'  command,  to allow for  the
  5143.       change of ownership of memory previously
  5144.       allocated by MSDOS.   Some programs when
  5145.       loaded  by MSDOS allocate all  available
  5146.       memory.   This  is  characterized by  an
  5147.       'end'  MCB block that has been  assigned
  5148.       the PSP segment of the program,  as  its
  5149.       owner.
  5150.  
  5151.            Normally,   the   'end'  MCB  holds
  5152.       available  memory and has a NULL PSP (0)
  5153.       for its owner  (use  exam mcb  from  the
  5154.       debugger  shell  to examine  the  memory
  5155.       chain).  You should next use the utility
  5156.       monitor  to determine  that the program
  5157.       has  not  allocated  stack space  in the
  5158.       area  covered  by the  'end' MCB.  After
  5159.       this is verified, it will be safe to use
  5160.       the  -o  switch  and  recover  the 'end'
  5161.       memory.  To free the memory, set the PSP
  5162.       owner  to  0000.    Sometimes,  a better
  5163.       solution  is to deallocate  some  of the
  5164.       memory  with the  -a switch,  since  the
  5165.       process owner could be using some of the
  5166.       'end' MCB memory.
  5167.  
  5168.       The command syntax is:
  5169.  
  5170.         set pool -o [ MCB address
  5171.                       [ / nuPSP ] ]
  5172.  
  5173.       where,  the  segment address of the  MCB
  5174.       has  been  obtained using  the  debugger
  5175.       shell,  and  nuPSP is  the new requested
  5176.       PSP  segment  to  own  the  block.   The
  5177.       parameters    can    be    entered    in
  5178.       hexadecimal,  using  the  format  0x????
  5179.       (example,  set pool -o 0x65F0 0).
  5180.  
  5181.  
  5182.  
  5183.       Part II, The Debugger Shell    page 3-17
  5184.  
  5185.       C O M S O F T                   VMiX 286
  5186.  
  5187.  
  5188.  
  5189.  
  5190.       set video
  5191.  
  5192.         -c  " sets video background/foreground
  5193.               color"
  5194.         -C  " sets window color attribute"
  5195.         -m  " sets video mode (0 - 16)"
  5196.  
  5197.            Screen COLORS, in VMiX are set with
  5198.       switches  -c  and -C, in text modes, and
  5199.       in  graphics modes.
  5200.  
  5201.  
  5202.  
  5203.       Alphanumeric Text Modes:
  5204.  
  5205.  
  5206.       The command syntax is:
  5207.  
  5208.         set video -c [ color code ]
  5209.         set video -C [ color code ]
  5210.  
  5211.  
  5212.       The color code is a 2 digit  hexadecimal
  5213.       number of the form:
  5214.  
  5215.       0xbf
  5216.  
  5217.  
  5218.       where, b is  the  background color key
  5219.       and f is  the  foreground  color  key,
  5220.       selected fron the table below.   To use
  5221.       this  method,  the color code  argument
  5222.       must be entered  in hexadecimal format.
  5223.       Because the argument is in hexadecimal,
  5224.       bf must be preceeded by an '0x'.
  5225.  
  5226.  
  5227.  
  5228.  
  5229.  
  5230.  
  5231.       Part II, The Debugger Shell    page 3-18
  5232.  
  5233.       C O M S O F T                   VMiX 286
  5234.  
  5235.  
  5236.  
  5237.  
  5238.        Color Keys
  5239.  
  5240.  
  5241.        b  backgrounds    f  foregrounds
  5242.  
  5243.        0   black          0 black   8  gray
  5244.        1   blue           1 blue    9  lt. blue
  5245.        2   green          2 green   A  lt. green
  5246.        3   cyan           3 cyan    B  lt. cyan
  5247.        4   red            4 red     C  lt. red
  5248.        5   magenta        5 magenta D  lt. mag
  5249.        6   brown          6 brown   E  yellow
  5250.        7   white          7 white   F  brt white
  5251.  
  5252.  
  5253.  
  5254.  
  5255.  
  5256.  
  5257.       B/W Graphics Modes:
  5258.  
  5259.  
  5260.       The command syntax is:
  5261.  
  5262.         set video -c [ color code ]
  5263.         set video -C [ color code ]
  5264.  
  5265.  
  5266.       The  color code  is a  decimal  or hexa-
  5267.       decimal  number  which  represents   the
  5268.       pixels  on(1) or  off(0)  binary pattern
  5269.       on the screen.  See the color code table
  5270.       given below.
  5271.  
  5272.  
  5273.  
  5274.  
  5275.  
  5276.  
  5277.  
  5278.  
  5279.       Part II, The Debugger Shell    page 3-19
  5280.  
  5281.       C O M S O F T                   VMiX 286
  5282.  
  5283.  
  5284.  
  5285.  
  5286.       Color Codes
  5287.  
  5288.       decimal   hexadecimal
  5289.     
  5290.          0         0x0       00000000  black
  5291.          85        0x55      01010101  gray
  5292.         170        0xAA      10101010  gray
  5293.         255        0xFF      11111111  white
  5294.  
  5295.  
  5296.  
  5297.  
  5298.  
  5299.  
  5300.  
  5301.  
  5302.  
  5303.  
  5304.  
  5305.  
  5306.  
  5307.  
  5308.  
  5309.  
  5310.  
  5311.  
  5312.  
  5313.  
  5314.  
  5315.  
  5316.  
  5317.  
  5318.  
  5319.  
  5320.  
  5321.  
  5322.  
  5323.  
  5324.  
  5325.  
  5326.  
  5327.       Part II, The Debugger Shell    page 3-20
  5328.  
  5329.       C O M S O F T                   VMiX 286
  5330.  
  5331.  
  5332.  
  5333.       set video
  5334.  
  5335.         -w  " sets root window size:
  5336.               y0, x0, y1, x1"
  5337.  
  5338.            The  -w  switch is used to  specify
  5339.       the bounds of a new root window.  A root
  5340.       window is where all user dialog with the
  5341.       operating system takes place.  An 'exec'
  5342.       call, when the video mode  has been  set
  5343.       to  graphics  mode,  will display within
  5344.       the root  window,  since graphics  modes
  5345.       bypass the ROM  BIOS.  An 'exec' call in
  5346.       alphanumeric  mode could,  in some cases
  5347.       take over the entire screen.
  5348.  
  5349.  
  5350.           0
  5351.              ----------------------------------------------------------
  5352.             | VMiX.286 1.4X               Copyright ComSoft, Inc. 1987 |
  5353.             |----------------------------------------------------------|
  5354.             |                                                          |
  5355.             |                                                          |
  5356.           r | TOP left corner                                          |
  5357.             | *----------------------------                            |
  5358.       Y   o | |y,x                         |                           |
  5359.             | |        WINDOW              |                           |
  5360.           w | |                            |                           |
  5361.             | |                         y,x|                           |
  5362.             |  ----------------------------*                           |
  5363.             |                              BOTTOM right corner         |
  5364.             |                                                          |
  5365.             |                                                          | 
  5366.          24  ----------------------------------------------------------
  5367.             0                         column                           79
  5368.                                         X
  5369.  
  5370.                                      (Fig. 4)
  5371.       
  5372.       
  5373.  
  5374.  
  5375.       Part II, The Debugger Shell    page 3-21
  5376.  
  5377.       C O M S O F T                   VMiX 286
  5378.  
  5379.  
  5380.  
  5381.       The command syntax is:
  5382.  
  5383.         set video -w [ [ top row ]
  5384.                        [ / top col ]
  5385.                        [ / bot row ]
  5386.                        [ / bot col ] ]
  5387.  
  5388.  
  5389.       set video
  5390.  
  5391.         -W, " auto partitions (1 - 4) task windows
  5392.               (Shift-Tab toggles kbd)"
  5393.  
  5394.            To  support  multitasking  from the
  5395.       console  (up to  4 windows)  or a VT-100
  5396.       terminal  (up to  2 windows),   the   -W
  5397.       switch is provided.   Note  that the 'W'
  5398.       must   be   typed   in   upper-case,  to
  5399.       distinguish  it  from   the  manual  set
  5400.       window command, described above.
  5401.  
  5402.       The command syntax is:
  5403.  
  5404.         set video -W
  5405.  
  5406.       This command is sensitive  to the number
  5407.       of channels  that have been  assigned to
  5408.       COMM = 0,  the console.   It  uses  this
  5409.       count to determine the number of windows
  5410.       to divide the screen into.
  5411.  
  5412.       The set video -W command, is intended to
  5413.       work  in cunjunction  with  the hot key,
  5414.       Shift-Tab.  This console key combination
  5415.       will  move,  in round-robin fashion, the
  5416.       active  window/channel  which  owns  the
  5417.       console keyboard.  All tasks  running in
  5418.       the windows will execute concurrently in
  5419.       the background,  regardless of which one
  5420.       owns the console keyboard.
  5421.  
  5422.  
  5423.       Part II, The Debugger Shell    page 3-22
  5424.  
  5425.       C O M S O F T                   VMiX 286
  5426.  
  5427.  
  5428.  
  5429.  
  5430.            The nominal set of commands  needed
  5431.       to start  a background/windowed task  at
  5432.       the VMiX console, manually, is:
  5433.  
  5434.         debug : will get you to the debugger
  5435.  
  5436.         set system -m  will enable messages
  5437.  
  5438.         assign srcsink 0 : will grab a new
  5439.                            console (device 0)
  5440.                            channel
  5441.         quit : will return to the root shell
  5442.  
  5443.         spawn -c???? set video -W / exec .....
  5444.                will spawn a new background
  5445.                task to channel ???? provided by
  5446.                assign and partition the screen
  5447.  
  5448.         (press Shift-Tab to move the keyboard
  5449.                      to the new task)
  5450.  
  5451.       The  above  sequence can be  replaced by
  5452.       the simpler to use, single command:
  5453.  
  5454.         dosjob .....
  5455.  
  5456.       where ..... is the same user task string
  5457.       used with spawn, above.
  5458.  
  5459.         dosjob set video -W / exec .....
  5460.  
  5461.       NOTE: The VMiX status line (set video -s)
  5462.       will  display  the  current  console vio
  5463.       channel  (ie.,  where  the  keyboard  is
  5464.       active).
  5465.  
  5466.  
  5467.  
  5468.  
  5469.  
  5470.  
  5471.       Part II, The Debugger Shell    page 3-23
  5472.  
  5473.       C O M S O F T                   VMiX 286
  5474.  
  5475.  
  5476.  
  5477.  
  5478.       NAME: quit
  5479.  
  5480.       OUTLINE:
  5481.  
  5482.       Purpose:  To terminate the shell and
  5483.       exit.
  5484.  
  5485.  
  5486.       DESCRIPTION:
  5487.  
  5488.            The  debugger  shell  token  'quit'
  5489.       decrements   the  shell  level  by  one,
  5490.       terminates   the  debugger  shell,   and
  5491.       returns to the previous shell.
  5492.  
  5493.  
  5494.  
  5495.  
  5496.  
  5497.  
  5498.  
  5499.  
  5500.  
  5501.  
  5502.  
  5503.  
  5504.  
  5505.  
  5506.  
  5507.  
  5508.  
  5509.  
  5510.  
  5511.  
  5512.  
  5513.  
  5514.  
  5515.  
  5516.  
  5517.  
  5518.  
  5519.       Part II, The Debugger Shell    page 3-24
  5520.  
  5521.       C O M S O F T                   VMiX 286
  5522.  
  5523.  
  5524.  
  5525.  
  5526.       NAME: monitor.exe
  5527.  
  5528.       OUTLINE:
  5529.  
  5530.      monitor  " displays process control 
  5531.                  block information"
  5532.  
  5533.         -p     " displays information on the 
  5534.                  VMiX paged memory control 
  5535.                  blocks"
  5536.  
  5537.         -r     " monitors process registers
  5538.                  continuously: process id"
  5539.  
  5540.  
  5541.       DESCRIPTION:
  5542.  
  5543.  
  5544.       monitor
  5545.  
  5546.         -r  " monitors process registers
  5547.               continuously: process id"
  5548.  
  5549.       The command syntax is:
  5550.  
  5551.         monitor [ -r ] [ process id ]
  5552.  
  5553.  
  5554.            The VMiX 'monitor'  utility accepts
  5555.       several  command line  inputs.    If the
  5556.       switch '-r'  is not  given,  the process
  5557.       whose pid is specified is displayed.  If
  5558.       no process id is given, the utility will
  5559.       ask  for  a pid  to be  supplied.   This
  5560.       command  displays  the  process  control
  5561.       block and the saved context registers.
  5562.  
  5563.  
  5564.  
  5565.  
  5566.  
  5567.       Part II, The Debugger Shell    page 3-25
  5568.  
  5569.       C O M S O F T                   VMiX 286
  5570.  
  5571.  
  5572.  
  5573.  
  5574.            When the  '-r'  switch  is included
  5575.       before  the  process  id,   the  process
  5576.       registers will be continuously monitored
  5577.       until  the <Esc> key  or  <Ctrl> <Break>
  5578.       are pressed.
  5579.  
  5580.            While in the register mode, pressing
  5581.       <Ctrl> <s>  will put  the process  being
  5582.       viewed  to  sleep.  Pressing  <Ctrl> <q>
  5583.       will wake the process.
  5584.  
  5585.  
  5586.  
  5587.  
  5588.  
  5589.  
  5590.  
  5591.  
  5592.  
  5593.  
  5594.  
  5595.  
  5596.  
  5597.  
  5598.  
  5599.  
  5600.  
  5601.  
  5602.  
  5603.  
  5604.  
  5605.  
  5606.  
  5607.  
  5608.  
  5609.  
  5610.  
  5611.  
  5612.  
  5613.  
  5614.  
  5615.       Part II, The Debugger Shell    page 3-26
  5616.  
  5617.  
  5618.  
  5619.     
  5620.  
  5621.  
  5622.  
  5623.  
  5624.  
  5625.  
  5626.  
  5627.                   APPENDICIES
  5628.  
  5629.  
  5630.  
  5631.  
  5632.  
  5633.  
  5634.  
  5635.  
  5636.  
  5637.  
  5638.  
  5639.  
  5640.  
  5641.  
  5642.  
  5643.  
  5644.  
  5645.  
  5646.  
  5647.  
  5648.  
  5649.  
  5650.  
  5651.  
  5652.  
  5653.  
  5654.  
  5655.  
  5656.  
  5657.  
  5658.  
  5659.  
  5660.  
  5661.  
  5662.  
  5663.       Appendices                     page A-1
  5664.  
  5665.  
  5666.  
  5667.  
  5668.  
  5669.  
  5670.  
  5671.  
  5672.  
  5673.  
  5674.  
  5675.  
  5676.  
  5677.  
  5678.  
  5679.  
  5680.  
  5681.  
  5682.  
  5683.  
  5684.  
  5685.  
  5686.  
  5687.  
  5688.  
  5689.  
  5690.  
  5691.  
  5692.  
  5693.  
  5694.  
  5695.  
  5696.  
  5697.  
  5698.  
  5699.  
  5700.  
  5701.  
  5702.  
  5703.  
  5704.  
  5705.  
  5706.  
  5707.  
  5708.  
  5709.  
  5710.  
  5711.       Appendices                     page A-2
  5712.  
  5713.  
  5714.  
  5715.  
  5716.  
  5717.  
  5718.  
  5719.  
  5720.  
  5721.                     APPENDIX
  5722.  
  5723.  
  5724.                        A
  5725.  
  5726.  
  5727.  
  5728.  
  5729.  
  5730.  
  5731.  
  5732.  
  5733.  
  5734.  
  5735.  
  5736.               RELEASE NOTES V1.4X
  5737.  
  5738.  
  5739.  
  5740.  
  5741.  
  5742.  
  5743.  
  5744.  
  5745.  
  5746.  
  5747.  
  5748.  
  5749.  
  5750.  
  5751.  
  5752.  
  5753.  
  5754.  
  5755.  
  5756.  
  5757.  
  5758.  
  5759.       Appendix A, Release Notes      page A-3
  5760.  
  5761.  
  5762.  
  5763.  
  5764.  
  5765.  
  5766.  
  5767.  
  5768.  
  5769.  
  5770.  
  5771.  
  5772.  
  5773.  
  5774.  
  5775.  
  5776.  
  5777.  
  5778.  
  5779.  
  5780.  
  5781.  
  5782.  
  5783.  
  5784.  
  5785.  
  5786.  
  5787.  
  5788.  
  5789.  
  5790.  
  5791.  
  5792.  
  5793.  
  5794.  
  5795.  
  5796.  
  5797.  
  5798.  
  5799.  
  5800.  
  5801.  
  5802.  
  5803.  
  5804.  
  5805.  
  5806.  
  5807.       Appendix A, Release Notes      page A-4
  5808.  
  5809.  
  5810.  
  5811.  
  5812.  
  5813.  
  5814.  
  5815.  
  5816.  
  5817.  
  5818.  
  5819.  
  5820.  
  5821.  
  5822.  
  5823.  
  5824.  
  5825.  
  5826.  
  5827.  
  5828.  
  5829.  
  5830.  
  5831.  
  5832.  
  5833.  
  5834.  
  5835.  
  5836.  
  5837.  
  5838.  
  5839.  
  5840.  
  5841.  
  5842.  
  5843.  
  5844.  
  5845.  
  5846.  
  5847.  
  5848.  
  5849.  
  5850.  
  5851.  
  5852.  
  5853.  
  5854.  
  5855.       Appendix A, Release Notes      page A-5
  5856.  
  5857.  
  5858.  
  5859.  
  5860.  
  5861.  
  5862.  
  5863.  
  5864.  
  5865.  
  5866.  
  5867.  
  5868.  
  5869.  
  5870.  
  5871.  
  5872.  
  5873.  
  5874.  
  5875.  
  5876.  
  5877.  
  5878.  
  5879.  
  5880.  
  5881.  
  5882.  
  5883.  
  5884.  
  5885.  
  5886.  
  5887.  
  5888.  
  5889.  
  5890.  
  5891.  
  5892.  
  5893.  
  5894.  
  5895.  
  5896.  
  5897.  
  5898.  
  5899.  
  5900.  
  5901.  
  5902.  
  5903.       Appendix A, Release Notes      page A-6
  5904.  
  5905.  
  5906.  
  5907.  
  5908.  
  5909.  
  5910.  
  5911.       RELEASE NOTES
  5912.  
  5913.       The distribution  file  READ.ME includes
  5914.       the new release changes for this version.
  5915.  
  5916.  
  5917.       
  5918.       PROBLEM REPORTS
  5919.  
  5920.       TAR10  When  running   BASIC  or  BASICA
  5921.       interpreters  from  a dumb terminal, the 
  5922.       command buffer is not cleared  correctly 
  5923.       after  a  carriage return,  leaving  the 
  5924.       previous  command in the  buffer.   When 
  5925.       the  next command typed is shorter  than 
  5926.       the  previous,   a  Syntax  Error   will 
  5927.       result.    To  correct  this  situation, 
  5928.       press the <Esc> key to clear the buffer. 
  5929.  
  5930.       TAR11  MicroSoft WINDOWS  will not start 
  5931.       correctly  unless the current VMiX video 
  5932.       mode  is set to 3.   Turbo  Pascal  will 
  5933.       start correctly  in graphics modes,  but
  5934.       the editor will fail,  so also  set VMiX
  5935.       video  mode  to 3  before  an 'exec'  of
  5936.       TURBO.  BASIC will  start  correctly  in
  5937.       graphics modes,  but will not respond to
  5938.       the keyboard.
  5939.  
  5940.       TAR13    MicroSoft  WINDOWS  with  a bus
  5941.       mouse driver will crash, because changes
  5942.       the driver does to  the 8259 set-up  are
  5943.       not compatible  with VMiX.  This will be
  5944.       corrected in a future release.   WINDOWS
  5945.       with a serial mouse will work correctly.
  5946.  
  5947.  
  5948.  
  5949.  
  5950.  
  5951.       Appendix A, Release Notes      page A-7
  5952.  
  5953.  
  5954.  
  5955.  
  5956.  
  5957.  
  5958.  
  5959.       TAR14 Pressing <Ctrl><F> from a terminal 
  5960.       will  toggle-in  IBM  PC  function   key 
  5961.       emulation  (emulated by the digit keys), 
  5962.       and  also  provide  the [Ins]  and [Del]
  5963.       keys.  Using  the  [Ins]  and [Del] keys
  5964.       (emulated by ^I  and  ^D) with the BASIC
  5965.       editor will crash the user.
  5966.  
  5967.       TAR40  Some communication programs, like 
  5968.       XTALK  will multitask with  VMiX.  Since 
  5969.       most   communication   programs    write 
  5970.       directly  to video memory,  they  should 
  5971.       execute  at the console.  and be started
  5972.       with the dosjob -W command.  Care should
  5973.       used not have your second user on a COMM
  5974.       port which is equal to  the default port
  5975.       for the communications program, to avoid
  5976.       a port re-initialization.   XTALK starts
  5977.       on COM1, so put your second user on COM2.
  5978.  
  5979.       TAR41 WORDSTAR 3.2, which does not write 
  5980.       directly to video memory,  will  execute 
  5981.       correctly  from a second user at a  COMM 
  5982.       port.   However, exit  from this version
  5983.       of WORDSTAR, will crash that user; again
  5984.       because of memory management problems at
  5985.       deallocation  time.    To  correct this,
  5986.       terminate the WSTAR image  from  another 
  5987.       user shell utilizing the 'kill' token.
  5988.  
  5989.       TAR42  CODEVIEW writes directly to video 
  5990.       memory, so use it only at the console.
  5991.  
  5992.  
  5993.  
  5994.  
  5995.  
  5996.  
  5997.  
  5998.  
  5999.       Appendix A, Release Notes      page A-8
  6000.  
  6001.  
  6002.  
  6003.  
  6004.  
  6005.  
  6006.  
  6007.       TAR70  Speed-up boards that add an 80286 
  6008.       to a system, will not  operate correctly
  6009.       with VMiX  because  the software expects
  6010.       an AT bus for protected mode operations.
  6011.       If  the  CPU is  an  8088 or 8086,  VMiX
  6012.       will detect a non 286/386 CPU  and  will
  6013.       not initalize  protected mode  functions 
  6014.       and stay in real mode.  The same is true 
  6015.       of  some clones which use an XT bus with
  6016.       the 80286.  To force  VMiX  to ignore an
  6017.       80286/386 processor and force 8086 mode,
  6018.       invoke VMiX with the vm_boot -r option.
  6019.  
  6020.       TAR81  With the 'exec' command, any VMiX
  6021.       task can either  change the default disk
  6022.       or set a new PATH.   VMiX keeps only one
  6023.       global  default disk and path because of
  6024.       the overhead to maintain a different one
  6025.       for each task. It is therefore, possible
  6026.       for  one  task  to  trash  another  that 
  6027.       expected   its   own,   previously  set,
  6028.       default disk and/or PATH.  Set your path
  6029.       once,  for  all the  tasks  your  system
  6030.       should accommodate.
  6031.  
  6032.  
  6033.  
  6034.  
  6035.  
  6036.  
  6037.  
  6038.  
  6039.  
  6040.  
  6041.  
  6042.  
  6043.  
  6044.  
  6045.  
  6046.  
  6047.       Appendix A, Release Notes      page A-9
  6048.  
  6049.  
  6050.  
  6051.  
  6052.  
  6053.  
  6054.  
  6055.  
  6056.  
  6057.  
  6058.  
  6059.  
  6060.  
  6061.  
  6062.  
  6063.  
  6064.  
  6065.  
  6066.  
  6067.  
  6068.  
  6069.  
  6070.  
  6071.  
  6072.  
  6073.  
  6074.  
  6075.  
  6076.  
  6077.  
  6078.  
  6079.  
  6080.  
  6081.  
  6082.  
  6083.  
  6084.  
  6085.  
  6086.  
  6087.  
  6088.  
  6089.  
  6090.  
  6091.  
  6092.  
  6093.  
  6094.  
  6095.       Appendix A, Release Notes      page A-10
  6096.  
  6097.  
  6098.  
  6099.  
  6100.  
  6101.  
  6102.  
  6103.  
  6104.  
  6105.                     APPENDIX
  6106.  
  6107.  
  6108.                        C
  6109.  
  6110.  
  6111.  
  6112.  
  6113.  
  6114.  
  6115.  
  6116.  
  6117.  
  6118.  
  6119.  
  6120.              TECHNICAL INFORMATION
  6121.  
  6122.  
  6123.  
  6124.  
  6125.  
  6126.  
  6127.  
  6128.  
  6129.  
  6130.  
  6131.  
  6132.  
  6133.  
  6134.  
  6135.  
  6136.  
  6137.  
  6138.  
  6139.  
  6140.  
  6141.  
  6142.  
  6143.       Appendix C, Technical Info     page C-1
  6144.  
  6145.  
  6146.  
  6147.  
  6148.  
  6149.  
  6150.  
  6151.  
  6152.  
  6153.  
  6154.  
  6155.  
  6156.  
  6157.  
  6158.  
  6159.  
  6160.  
  6161.  
  6162.  
  6163.  
  6164.  
  6165.  
  6166.  
  6167.  
  6168.  
  6169.  
  6170.  
  6171.  
  6172.  
  6173.  
  6174.  
  6175.  
  6176.  
  6177.  
  6178.  
  6179.  
  6180.  
  6181.  
  6182.  
  6183.  
  6184.  
  6185.  
  6186.  
  6187.  
  6188.  
  6189.  
  6190.  
  6191.       Appendix C, Technical Info     page C-2
  6192.  
  6193.  
  6194.  
  6195.  
  6196.  
  6197.  
  6198.  
  6199.  
  6200.  
  6201.  
  6202.  
  6203.  
  6204.  
  6205.  
  6206.  
  6207.  
  6208.  
  6209.  
  6210.  
  6211.  
  6212.  
  6213.  
  6214.  
  6215.  
  6216.  
  6217.  
  6218.  
  6219.  
  6220.  
  6221.  
  6222.  
  6223.  
  6224.  
  6225.  
  6226.  
  6227.  
  6228.  
  6229.  
  6230.  
  6231.  
  6232.  
  6233.  
  6234.  
  6235.  
  6236.  
  6237.  
  6238.  
  6239.       Appendix C, Technical Info     page C-12
  6240.  
  6241.  
  6242.  
  6243.  
  6244.  
  6245.  
  6246.  
  6247.  
  6248.  
  6249.  
  6250.  
  6251.  
  6252.  
  6253.  
  6254.  
  6255.  
  6256.  
  6257.  
  6258.  
  6259.  
  6260.  
  6261.  
  6262.                  VMiX GLOBAL DATA
  6263.  
  6264.        
  6265.                      04-07-87
  6266.  
  6267.  
  6268.  
  6269.  
  6270.  
  6271.  
  6272.  
  6273.  
  6274.  
  6275.  
  6276.  
  6277.  
  6278.  
  6279.  
  6280.  
  6281.  
  6282.  
  6283.  
  6284.  
  6285.  
  6286.  
  6287.       Appendix C, VMiX Global Data   page C-13
  6288.  
  6289.  
  6290.  
  6291.  
  6292.  
  6293.  
  6294.  
  6295.  
  6296.  
  6297.  
  6298.  
  6299.  
  6300.  
  6301.  
  6302.  
  6303.  
  6304.  
  6305.  
  6306.  
  6307.  
  6308.  
  6309.  
  6310.  
  6311.  
  6312.  
  6313.  
  6314.  
  6315.  
  6316.  
  6317.  
  6318.  
  6319.  
  6320.  
  6321.  
  6322.  
  6323.  
  6324.  
  6325.  
  6326.  
  6327.  
  6328.  
  6329.  
  6330.  
  6331.  
  6332.  
  6333.  
  6334.  
  6335.       Appendix C, VMiX Global Data   page C-14
  6336.  
  6337.  
  6338.  
  6339.           
  6340.           io0us_addr6845          - Port address of video controller CSR
  6341.           io0i_bwinbot            - Current banner window bot right(row col)
  6342.           io0i_bwintop            - Current banner window top left(row col)
  6343.           io0as_chantab[ ]        - I/O channel Control Block Table
  6344.           io0b_chrxsiz            - Current pixels per font character
  6345.           io0b_chrysiz            - Current scan lines per font character
  6346.           io0i_colorbg            - Current video background color
  6347.           io0i_colorfg            - Current video foreground color
  6348.           io0b_colvmax            - Maximum number of video columns
  6349.           io0i_conbg              - Console background color
  6350.           io0i_confg              - Console foreground color
  6351.           io0i_conwn              - Console window background color 
  6352.           io0ui_comm              - Asynch comm port BIOS device id
  6353.           io0ui_commax            - Maximum number of logable comm ports
  6354.           io0ai_commbuf[ ]        - Comm object _ttyin_event buffers
  6355.           io0b_currtmod           - Current TTY screen mode
  6356.           io0i_currtsiz           - Current TTY size 0x174F (row col)
  6357.           io0pc_currvbuf          - Current console video buffer address
  6358.           io0b_currvfnt           - Current console font
  6359.           io0b_currvmod           - Current console mode
  6360.           io0i_currvsiz           - Current console size 0x184F (row col)
  6361.           io0as_drvtab[ ]         - Driver Setup Block Table
  6362.           io0ap_fontab[ ]         - Character Font Table
  6363.           io0i_gcurx              - Current graphics cursor x position
  6364.           io0i_gcury              - Current graphics cursor y position
  6365.           io0ps_irphead           - Pointer to I/O Request Packets chain head
  6366.           io0i_hascon             - Process owns console flag
  6367.           io0ui_nextchan          - Next available I/O channel
  6368.           io0ui_nextuid           - Next available object id
  6369.           io0ui_nextdrv           - Next available driver table entry
  6370.           io0ac_objnam[ ] [ ]     - Object Name Table
  6371.           io0as_objtab[ ]         - Object Control Block Table
  6372.           io0ui_regenlen          - Length of Video RAM
  6373.           io0b_rowvmax            - Maximum number of video rows
  6374.           io0i_statlin            - Status line display flag
  6375.           io0ps_stdirp            - Pointer to STDIO chan's I/O Request head
  6376.           io0b_stormode           - Shutdown restore BIOS video mode
  6377.           io0b_tcurx              - Current text cursor x position
  6378.           io0b_tcury              - Current text cursor y position
  6379.           io0ps_tdb               - Pointer to io0as_tdbtab[ ]
  6380.       
  6381.  
  6382.  
  6383.       Appendix C, VMiX Global Data   page C-15
  6384.  
  6385.  
  6386.  
  6387.           
  6388.           io0ui_termmax           - Maximum terminal description blocks
  6389.           io0as_tdbtab[ ]         - Terminal type Description Block Table
  6390.           io0b_vmode              - Current BIOS video mode
  6391.  
  6392.  
  6393.           ker0us_asmcode          - Kernel assembly code segment
  6394.           ker0us_asmdata          - Kernel assembly data segment
  6395.           ker0us_code             - Kernel C code segment
  6396.           ker0us_data             - Kernel C data segment
  6397.           ker0i_debug             - Manager's messages flag 
  6398.           ker0i_defdrv            - Current default drive BIOS device id
  6399.           ker0i_dos               - MSDOS version number
  6400.           ker0i_error             - Kernel error code
  6401.           ker0i_inbios            - BIOS entry semaphore
  6402.           ker0i_infdos            - Foreign DOS (MSDOS) entry semaphore
  6403.           ker0us_initoff          - Initialize new stack offset
  6404.           ker0us_initseg          - Initialize new stack segment
  6405.           ker0pf_int09            - Pointer to keyboard ISR
  6406.           ker0us_intds            - Interrupt data segment
  6407.           ker0us_intsp            - Interrupt stack pointer
  6408.           ker0us_intss            - Interrupt stack segment
  6409.           ker0us_kerds            - Kernel C data segment
  6410.           ker0us_kersp            - Kernel C stack pointer
  6411.           ker0us_kerss            - Kernel C stack segment
  6412.           ker0i_lockbios          - Locks BIOS  entry
  6413.           ker0i_lockfdos          - Locks foreign dos (MSDOS) entry
  6414.           ker0i_p286              - Host machine id flag
  6415.           ker0i_remote            - Termination mode
  6416.           ker0i_rootshl           - Top level shell active flag
  6417.           ker0ps_savregs          - Pointer to temporary REGS Kernel area
  6418.           ker0i_shllev            - Current process' shell depth level
  6419.           ker0ui_shutcnt          - Shutdown delay count (SECs)
  6420.           ker0ui_stathw           - BIOS hardware status
  6421.           ker0ps_vmpsp            - Pointer to VMiX's PSP
  6422.           ker0s_vmpsp             - VMiX's Program Segment Prefix
  6423.  
  6424.  
  6425.           mem0ui_exalloc          - Maximum para available to next .exe image
  6426.           mem0ps_ldt              - Pointer to LDT tables
  6427.           mem0as_ldttab[ ] [ ]    - Local Descriptor Table
  6428.       
  6429.  
  6430.  
  6431.       Appendix C, VMiX Global Data   page C-16
  6432.  
  6433.  
  6434.  
  6435.           
  6436.           mem0ui_maxpge           - Maximum pages in memory pool
  6437.           mem0ui_maxpara          - Maximum available para of physical memory
  6438.           mem0ps_mcbhead          - Pointer to memory chain head
  6439.           mem0ps_mcbtail          - Pointer to end memory control block
  6440.           mem0us_page0            - Segment address of start of paged memory
  6441.           mem0as_pgetab[ ] [ ]    - Paged Memory Table
  6442.           mem0us_toppara          - Segment address of top physical memory
  6443.  
  6444.  
  6445.           sch0ui_clkcnt           - Timer tick count delay
  6446.           sch0ui_clkdiff          - Number of clock deferred ticks to post
  6447.           sch0i_clkflg            - Scheduler process clock ticks flag
  6448.           sch0ui_clktick          - Current clock tick
  6449.           sch0ui_currpid          - Current process id
  6450.           sch0us_ctxoff           - Current process task state store offset
  6451.           sch0us_ctxseg           - Current process task state store segment
  6452.           sch0ui_nextpid          - Next available process id
  6453.           sch0ui_numproc          - Current number of active processes
  6454.           sch0ui_preempt          - Preempt process quantum flag
  6455.           sch0us_procsp           - Current process stack pointer
  6456.           sch0us_procss           - Current process stack segment
  6457.           sch0as_proctab[ ]       - Process table
  6458.           sch0i_tmqempty          - Timer queue is empty flag
  6459.           sch0i_tmqhdkey          - Timer queue head element delta key
  6460.  
  6461.  
  6462.           shl0as_argtab[ ] [ ]    - Argument switches tables
  6463.           shl0i_bufsiz            - Current shell input buffer size
  6464.           shl0ps_debtok[ ]        - Pointer to debug shell tokens
  6465.           shl0ps_remarg[ ]        - Pointer to remote token switches
  6466.           shl0ps_shltok[ ]        - Pointer to root shell tokens
  6467.           shl0ps_spwarg[ ]        - Pointer to spawn token switches
  6468.           shl0as_toktab[ ] [ ]    - Shell token tables
  6469.       
  6470.  
  6471.  
  6472.  
  6473.  
  6474.  
  6475.  
  6476.  
  6477.  
  6478.  
  6479.       Appendix C, VMiX Global Data   page C-17
  6480.  
  6481.  
  6482.  
  6483.       
  6484.       deb0ps_debarg[ ]        - Pointer to debug token switches
  6485.       deb0ps_examtok[ ]       - Pointer to debug examine tokens
  6486.       deb0ps_fntarg[ ]        - Pointer to font token switches
  6487.       deb0ps_iniarg[ ]        - Pointer to init token switches
  6488.       deb0ps_initok[ ]        - Pointer to debug init tokens
  6489.       deb0ps_pooarg[ ]        - Pointer to pool token switches
  6490.       deb0ps_proarg[ ]        - Pointer to process token switches
  6491.       deb0ps_settok[ ]        - Pointer to debug set tokens
  6492.       deb0ps_vidarg[ ]        - Pointer to video token switches
  6493.       
  6494.  
  6495.  
  6496.  
  6497.  
  6498.  
  6499.  
  6500.  
  6501.  
  6502.  
  6503.  
  6504.  
  6505.  
  6506.  
  6507.  
  6508.  
  6509.  
  6510.  
  6511.  
  6512.  
  6513.  
  6514.  
  6515.  
  6516.  
  6517.  
  6518.  
  6519.  
  6520.  
  6521.  
  6522.  
  6523.  
  6524.  
  6525.  
  6526.  
  6527.       Appendix C, VMiX Global Data   page C-18
  6528.  
  6529.  
  6530.  
  6531.  
  6532.  
  6533.  
  6534.  
  6535.  
  6536.  
  6537.                     APPENDIX
  6538.  
  6539.  
  6540.                        D
  6541.  
  6542.  
  6543.  
  6544.  
  6545.  
  6546.  
  6547.  
  6548.  
  6549.  
  6550.  
  6551.  
  6552.                  STATUS MONITOR
  6553.  
  6554.  
  6555.  
  6556.  
  6557.  
  6558.  
  6559.  
  6560.  
  6561.  
  6562.  
  6563.  
  6564.  
  6565.  
  6566.  
  6567.  
  6568.  
  6569.  
  6570.  
  6571.  
  6572.  
  6573.  
  6574.  
  6575.       Appendix D, Status Monitor     page D-1
  6576.  
  6577.  
  6578.  
  6579.  
  6580.  
  6581.  
  6582.  
  6583.  
  6584.  
  6585.  
  6586.  
  6587.  
  6588.  
  6589.  
  6590.  
  6591.  
  6592.  
  6593.  
  6594.  
  6595.  
  6596.  
  6597.  
  6598.  
  6599.  
  6600.  
  6601.  
  6602.  
  6603.  
  6604.  
  6605.  
  6606.  
  6607.  
  6608.  
  6609.  
  6610.  
  6611.  
  6612.  
  6613.  
  6614.  
  6615.  
  6616.  
  6617.  
  6618.  
  6619.  
  6620.  
  6621.  
  6622.  
  6623.       Appendix D, Status Monitor     page D-2
  6624.  
  6625.  
  6626.  
  6627.  
  6628.       VMiX CONSOLE STATUS
  6629.  
  6630.  
  6631.            The  VMiX  status line displays  at 
  6632.       the  bottom of the console display  when 
  6633.       selected  from the Debugger  Shell.   To 
  6634.       toggle  the status line use the  command  
  6635.       set video -s from the Debugger Shell  or 
  6636.       the  command debug set video -s from the 
  6637.       Root Shell.
  6638.  
  6639.            The status line displays:
  6640.  
  6641.                 the time
  6642.                 the current console vio channel
  6643.                 the current console video mode
  6644.                 the keyboard toggle keys
  6645.                     [Ins]
  6646.                     [Num Lock]
  6647.                     <Caps Lock>
  6648.                     [Scroll Lock]
  6649.                 all disk access errors
  6650.  
  6651.  
  6652.  
  6653.  
  6654.  
  6655.  
  6656.  
  6657.  
  6658.  
  6659.  
  6660.  
  6661.  
  6662.  
  6663.  
  6664.  
  6665.  
  6666.  
  6667.  
  6668.  
  6669.  
  6670.  
  6671.       Appendix D, Status Monitor     page D-3
  6672.  
  6673.  
  6674.  
  6675.  
  6676.       PASSIVE DISK MONITOR
  6677.  
  6678.  
  6679.                 REPORTED DISK ERRORS
  6680.  
  6681.  
  6682.       Bad drive/command - This error is caused 
  6683.       by  an  invalid  drive  number  or  disk 
  6684.       driver command.
  6685.  
  6686.       AMark not found -  The Data Address Mark 
  6687.       recorded just before the data area of  a 
  6688.       sector could not be found.   Indicates a 
  6689.       disk which has not been  formatted,  has 
  6690.       suffered  magnetic damage,  or it  could 
  6691.       indicate defective media.
  6692.  
  6693.       Write protected - A write protect tab is 
  6694.       present  on the media or a fixed disk is 
  6695.       write protected.  If there is no tab the 
  6696.       drive's   sensor  is  probably  bad   or 
  6697.       misaligned.
  6698.  
  6699.       Sector not found -  The requested sector 
  6700.       number  could  not  be  found.   If  the 
  6701.       sector  number was valid for the  drive, 
  6702.       then  defective  media,   alignment,  or 
  6703.       format problems are probably to blame.
  6704.  
  6705.       Drive reset fail -  An attempt  to reset 
  6706.       the specified drive failed.
  6707.  
  6708.       Drive init fail -  This error reflects a 
  6709.       problem with the drive parameter  block.  
  6710.       It  could  indicate a controller  action 
  6711.       that  failed because of bad  parameters.  
  6712.       Bad parameters could indicate an attempt 
  6713.       to initialize an invalid drive.
  6714.  
  6715.  
  6716.  
  6717.  
  6718.  
  6719.       Appendix D, Status Monitor     page D-4
  6720.  
  6721.  
  6722.  
  6723.  
  6724.       DMA overrun -  The controller  could not 
  6725.       get  DMA  access to the data bus  before 
  6726.       time ran out.
  6727.  
  6728.       DMA boundary -  DMA cannot read or write 
  6729.       across 64k segment boundaries. This is a 
  6730.       software driver error.
  6731.  
  6732.       Bad sector (AT only) -  An operation was 
  6733.       attempted on a sector flagged bad by the 
  6734.       low level formatter.   Such areas should 
  6735.       have been marked bad in the FAT.
  6736.  
  6737.       Bad track (PC/XT only) -   An  operation 
  6738.       was attempted on a track flagged bad  by 
  6739.       the  low  level formatter.   Such  areas 
  6740.       should have been marked bad in the FAT.
  6741.  
  6742.       Bad read CRC/EEC -  The sector could not 
  6743.       be successfully read.  Repeated attempts 
  6744.       will  usually  read a  weak  sector.   A 
  6745.       common disk I/O error,  possibly  caused 
  6746.       by defective media,  dirty heads,  power 
  6747.       glitches, or misaligned drives.  A write 
  6748.       to  the  sector  will  usually  fix  the 
  6749.       problem, except in the case of defective 
  6750.       media.   Repeated CRC read errors are an 
  6751.       indication to the prudent user to  back-
  6752.       up  his data to new media and/or replace 
  6753.       the  current  media where  the  data  is 
  6754.       stored.
  6755.  
  6756.       Soft error fixed -    Reports  that  the 
  6757.       controller's    48bit   EEC    algorithm 
  6758.       successfully corrected a soft data error.
  6759.  
  6760.       Controller fault -  The  controller  had 
  6761.       not successfully completed the requested 
  6762.       command before time ran out.
  6763.  
  6764.  
  6765.  
  6766.  
  6767.       Appendix D, Status Monitor     page D-5
  6768.  
  6769.  
  6770.  
  6771.  
  6772.       Track seek fail -  Moving the drive head 
  6773.       to   seek  a  requested   cylinder   was 
  6774.       unsuccessful.   If  the cylinder  number 
  6775.       was valid for the drive, then a hardware 
  6776.       problem is probably to blame.
  6777.  
  6778.       Drive unavailable - The time allowed for 
  6779.       an operation expired without a  response 
  6780.       from the drive. MSDOS reports this error 
  6781.       as 'Drive not ready'.
  6782.  
  6783.       Unknown error -    An  error  code  was 
  6784.       returned  for which VMiX has no defined 
  6785.       error description.
  6786.  
  6787.       Write fault (AT only) -    Usually  this 
  6788.       indicates  a hardware problem  with  the 
  6789.       physical drive. 
  6790.  
  6791.       Status error (AT only) -  The controller 
  6792.       status  register indicated that an error 
  6793.       condition   existed,   but   the   error 
  6794.       register  did not contain a valid  error 
  6795.       code.
  6796.  
  6797.       Sense fail (PC/XT only) -
  6798.  
  6799.  
  6800.  
  6801.  
  6802.  
  6803.  
  6804.  
  6805.  
  6806.  
  6807.  
  6808.  
  6809.  
  6810.  
  6811.  
  6812.  
  6813.  
  6814.  
  6815.       Appendix D, Status Monitor     page D-6
  6816.  
  6817.  
  6818.  
  6819.  
  6820.  
  6821.  
  6822.  
  6823.  
  6824.  
  6825.  
  6826.  
  6827.  
  6828.  
  6829.  
  6830.  
  6831.  
  6832.  
  6833.  
  6834.  
  6835.  
  6836.  
  6837.  
  6838.  
  6839.  
  6840.  
  6841.  
  6842.  
  6843.  
  6844.  
  6845.  
  6846.  
  6847.  
  6848.  
  6849.  
  6850.  
  6851.  
  6852.  
  6853.  
  6854.  
  6855.  
  6856.  
  6857.  
  6858.  
  6859.  
  6860.  
  6861.  
  6862.  
  6863.       Appendix D, Status Monitor     page D-7
  6864.  
  6865.  
  6866.  
  6867.  
  6868.  
  6869.  
  6870.  
  6871.  
  6872.  
  6873.  
  6874.  
  6875.  
  6876.  
  6877.  
  6878.  
  6879.  
  6880.  
  6881.  
  6882.  
  6883.  
  6884.  
  6885.  
  6886.  
  6887.  
  6888.  
  6889.  
  6890.  
  6891.  
  6892.  
  6893.  
  6894.  
  6895.  
  6896.  
  6897.  
  6898.  
  6899.  
  6900.  
  6901.  
  6902.  
  6903.  
  6904.  
  6905.  
  6906.  
  6907.  
  6908.  
  6909.  
  6910.  
  6911.  
  6912.       Appendix D, Status Monitor     page D-8
  6913.  
  6914.  
  6915.